X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2049ba38adafa0ec146880de29f26e32dd69a125..266839eee9b3695b265868365ee87d7ebeba41be:/utils/dialoged/src/reseditr.h?ds=sidebyside diff --git a/utils/dialoged/src/reseditr.h b/utils/dialoged/src/reseditr.h index c5f07132af..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,8 +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 @@ -66,7 +69,6 @@ */ class wxResourceEditorFrame; -class EditorToolPalette; class EditorToolBar; class wxWindowPropertyInfo; class wxResourceEditorProjectTree; @@ -75,7 +77,7 @@ class wxResourceEditorControlList; #ifdef __WXMSW__ #define wxHelpController wxWinHelpController #else -#define wxHelpController wxXLPHelpController; +#define wxHelpController wxHTMLHelpController; #endif class wxHelpController; @@ -112,31 +114,42 @@ 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); void GenerateButtonStyleString(long windowStyle, char *buf); void GenerateCheckBoxStyleString(long windowStyle, char *buf); + void GenerateRadioButtonStyleString(long windowStyle, char *buf); void GenerateListBoxStyleString(long windowStyle, char *buf); void GenerateSliderStyleString(long windowStyle, char *buf); 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; @@ -179,8 +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 EditorToolPalette *OnCreatePalette(wxFrame *parent); + virtual wxToolBar *OnCreateToolBar(wxFrame *parent); // Create a window information object for the give window wxWindowPropertyInfo* CreatePropertyInfoForWindow(wxWindow *win); @@ -193,8 +205,8 @@ public: virtual bool Edit(wxItemResource *res); virtual bool CreateNewPanel(); virtual bool CreatePanelItem(wxItemResource *panelResource, wxPanel *panel, char *itemType, int x = 10, int y = 10, bool isBitmap = FALSE); - virtual bool DeleteSelection(); + virtual bool TestCurrentDialog(wxWindow* parent); // Saves the window info into the resource, and deletes the // handler. Doesn't actually disassociate the window from @@ -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); @@ -253,14 +285,14 @@ public: // Accessors inline void SetEditorFrame(wxFrame *fr) { m_editorFrame = fr; } inline void SetEditorToolBar(EditorToolBar *tb) { m_editorToolBar = tb; } - inline void SetEditorPalette(EditorToolPalette *pal) { m_editorPalette = pal; } inline wxFrame *GetEditorFrame() const { return m_editorFrame; } inline wxResourceEditorProjectTree *GetEditorResourceTree() const { return m_editorResourceTree; } inline wxResourceEditorControlList *GetEditorControlList() const { return m_editorControlList; } - inline EditorToolPalette *GetEditorPalette() const { return m_editorPalette; } 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; } @@ -268,24 +300,34 @@ public: inline wxResourceTable& GetResourceTable() { return m_resourceTable; } inline wxHashTable& GetResourceAssociations() { return m_resourceAssociations; } - inline wxString& GetCurrentFilename() { return m_currentFilename; } + inline wxString GetCurrentFilename() const { return m_currentFilename; } static wxResourceManager* GetCurrentResourceManager() { return sm_currentResourceManager; } + inline void SetSymbolFilename(const wxString& s) { m_symbolFilename = s; } + inline wxString GetSymbolFilename() const { return m_symbolFilename; } + 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; wxMenu* m_popupMenu; wxResourceEditorProjectTree* m_editorResourceTree; wxResourceEditorControlList* m_editorControlList; - EditorToolPalette* m_editorPalette; EditorToolBar* m_editorToolBar; int m_nameCounter; + int m_symbolIdCounter; // For generating window ids bool m_modified; wxHashTable m_resourceAssociations; wxList m_selections; @@ -300,6 +342,11 @@ public: wxRect m_propertyWindowSize; wxRect m_resourceEditorWindowSize; static wxResourceManager* sm_currentResourceManager; + + // Symbol table with identifiers for controls + wxResourceSymbolTable m_symbolTable; + // Filename for include file, e.g. resource.h + wxString m_symbolFilename; }; @@ -314,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); @@ -339,7 +386,6 @@ class wxResourceEditorScrolledWindow: public wxScrolledWindow long style = 0); ~wxResourceEditorScrolledWindow(); - void OnScroll(wxScrollEvent& event); void OnPaint(wxPaintEvent& event); void DrawTitle(wxDC& dc); @@ -368,10 +414,9 @@ class EditorToolBar: public wxToolBar { public: EditorToolBar(wxFrame *frame, const wxPoint& pos = wxPoint(0, 0), const wxSize& size = wxSize(0, 0), - long style = 0, int direction = wxVERTICAL, int RowsOrColumns = 2); + long style = wxTB_HORIZONTAL); bool OnLeftClick(int toolIndex, bool toggled); void OnMouseEnter(int toolIndex); - void OnPaint(wxPaintEvent& event); DECLARE_EVENT_TABLE() }; @@ -395,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