X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/457814b5aa2ee5c83abc65a6aee2a3ebcb1af34f..d9e12f1a3267a834a31bc516632655e1f016fb77:/utils/dialoged/src/reseditr.h diff --git a/utils/dialoged/src/reseditr.h b/utils/dialoged/src/reseditr.h index ef629f21b3..3b479472e5 100644 --- a/utils/dialoged/src/reseditr.h +++ b/utils/dialoged/src/reseditr.h @@ -12,367 +12,445 @@ #ifndef _RESEDITR_H_ #define _RESEDITR_H_ -#define wxDIALOG_EDITOR_VERSION 1.6 +#define wxDIALOG_EDITOR_VERSION 2.1 -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(__APPLE__) #pragma interface "reseditr.h" #endif +#include "wx/deprecated/setup.h" + #include "wx/wx.h" #include "wx/string.h" #include "wx/layout.h" -#include "wx/resource.h" -#include "wx/tbarsmpl.h" - -#include "proplist.h" - -#if defined(__WINDOWS__) && defined(__WIN95__) -#include "wx/tbar95.h" -#elif defined(__WINDOWS__) -#include "wx/tbarmsw.h" -#endif - -#define RESED_DELETE 1 -#define RESED_TOGGLE_TEST_MODE 2 -#define RESED_RECREATE 3 -#define RESED_CLEAR 4 -#define RESED_NEW_DIALOG 5 -#define RESED_NEW_PANEL 6 - -#define RESED_CONTENTS 20 +#include "wx/toolbar.h" +#include "wx/imaglist.h" +#include "wx/treectrl.h" +#include "wx/txtstrm.h" + +#include "wx/deprecated/resource.h" +#include "wx/deprecated/proplist.h" + +#include "symbtabl.h" +#include "winstyle.h" + +#define RESED_DELETE 301 +#define RESED_RECREATE 303 +#define RESED_CLEAR 304 +#define RESED_NEW_DIALOG 305 +#define RESED_NEW_PANEL 306 +#define RESED_TEST 310 +#define RESED_CONVERT_WXRS 311 // Convert old WXRs to new + +#define RESED_CONTENTS 320 + +#define IDC_TREECTRL 500 +#define IDC_LISTCTRL 501 + +// For control list ('palette') +#define RESED_POINTER 0 +#define RESED_BUTTON 1 +#define RESED_BMPBUTTON 2 +#define RESED_STATICTEXT 3 +#define RESED_STATICBMP 4 +#define RESED_STATICBOX 5 +#define RESED_TEXTCTRL_SINGLE 6 +#define RESED_TEXTCTRL_MULTIPLE 7 +#define RESED_LISTBOX 8 +#define RESED_CHOICE 9 +#define RESED_COMBOBOX 10 +#define RESED_CHECKBOX 11 +#define RESED_SLIDER 12 +#define RESED_GAUGE 13 +#define RESED_RADIOBOX 14 +#define RESED_RADIOBUTTON 15 +#define RESED_SCROLLBAR 16 +#define RESED_TREECTRL 17 +#define RESED_LISTCTRL 18 +#define RESED_SPINBUTTON 19 /* - * Controls loading, saving, user interface of resource editor(s). - */ +* Controls loading, saving, user interface of resource editor(s). +*/ class wxResourceEditorFrame; -class EditorToolPalette; class EditorToolBar; class wxWindowPropertyInfo; +class wxResourceEditorProjectTree; +class wxResourceEditorControlList; -#ifdef __WINDOWS__ +#ifdef __WXMSW__ #define wxHelpController wxWinHelpController #else -#define wxHelpController wxXLPHelpController; +#define wxHelpController wxHTMLHelpController; #endif class wxHelpController; /* - * The resourceTable contains a list of wxItemResources (which each may - * have further children, defining e.g. a dialog box with controls). - * - * We need to associate actual windows with each wxItemResource, - * instead of the current 'one current window' scheme. - * - * - We create a new dialog, create a wxItemResource, - * associate the dialog with wxItemResource via a hash table. - * Must be a hash table in case dialog is deleted without - * telling the resource manager. - * - When we save the resource after editing/closing the dialog, - * we check the wxItemResource/wxDialog and children for - * consistency (throw away items no longer in the wxDialog, - * create any new wxItemResources). - * - We save the wxItemResources via the wxPropertyInfo classes, - * so devolve the code to the appropriate class. - * This involves creating a new temporary wxPropertyInfo for - * the purpose. - * - * We currently assume we only create one instance of a window for - * each wxItemResource. We will need to relax this when we're editing - * in situ. - * - * - */ - +* The resourceTable contains a list of wxItemResources (which each may +* have further children, defining e.g. a dialog box with controls). +* +* We need to associate actual windows with each wxItemResource, +* instead of the current 'one current window' scheme. +* +* - We create a new dialog, create a wxItemResource, +* associate the dialog with wxItemResource via a hash table. +* Must be a hash table in case dialog is deleted without +* telling the resource manager. +* - When we save the resource after editing/closing the dialog, +* we check the wxItemResource/wxDialog and children for +* consistency (throw away items no longer in the wxDialog, +* create any new wxItemResources). +* - We save the wxItemResources via the wxPropertyInfo classes, +* so devolve the code to the appropriate class. +* This involves creating a new temporary wxPropertyInfo for +* the purpose. +* +* We currently assume we only create one instance of a window for +* each wxItemResource. We will need to relax this when we're editing +* in situ. +* +* +*/ + class wxResourceTableWithSaving: public wxResourceTable { - public: - wxResourceTableWithSaving(void):wxResourceTable() - { - } - virtual bool Save(const wxString& filename); - virtual bool SaveResource(ostream& stream, wxItemResource *item); - - 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 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 GenerateScrollBarStyleString(long windowStyle, char *buf); - void GenerateItemStyleString(long windowStyle, char *buf); - - bool GenerateStyle(char *buf, long windowStyle, long flag, char *strStyle); - - void OutputFont(ostream& stream, wxFont *font); - wxControl *CreateItem(wxPanel *panel, wxItemResource *childResource); +public: + wxResourceTableWithSaving():wxResourceTable() + { + // Add all known window styles + m_styleTable.Init(); + } + virtual bool Save(const wxString& filename); + virtual bool SaveResource(wxTextOutputStream& stream, wxItemResource* item, wxItemResource* parentItem); + + void GeneratePanelStyleString(long windowStyle, char *buf); + void GenerateDialogStyleString(long windowStyle, char *buf); + + void GenerateControlStyleString(const wxString& windowClass, long windowStyle, char *buf); + + void OutputFont(wxTextOutputStream& stream, const wxFont& font); + wxControl *CreateItem(wxPanel *panel, const wxItemResource *childResource, const wxItemResource* parentResource); + +protected: + wxWindowStyleTable m_styleTable; }; - + +class wxResourceEditorScrolledWindow; + class wxResourceManager: public wxObject { + friend class wxResourceEditorFrame; + +public: + wxResourceManager(); + ~wxResourceManager(); + + // Operations + + // Initializes the resource manager + bool Initialize(); + + // Load/save window size etc. + bool LoadOptions(); + bool SaveOptions(); + + // Show or hide the resource editor frame, which displays a list + // of resources with ability to edit them. + virtual bool ShowResourceEditor(bool show, wxWindow *parent = NULL, const char *title = "wxWindows Dialog Editor"); + + // Convert old WXRs to new + virtual bool ConvertWXRs(); + bool DoConvertWXR(const wxString& oldPath, const wxString& newPath); + bool ChangeOldToNewResource(wxItemResource* parent, wxItemResource* res); + bool InsertLabelResource(wxItemResource* parent, wxItemResource* res); + + virtual bool Save(); + virtual bool SaveAs(); + virtual bool Save(const wxString& filename); + virtual bool Load(const wxString& filename); + virtual bool Clear(bool deleteWindows = TRUE, bool force = TRUE); + virtual void SetFrameTitle(const wxString& filename); + virtual void ClearCurrentDialog(); + virtual bool New(bool loadFromFile = TRUE, const wxString& filename = ""); + virtual bool SaveIfModified(); + virtual void AlignItems(int flag); + virtual void CopySize(int command); // Copy width, height or both from first control + virtual void ToBackOrFront(bool toBack); + virtual void DistributePositions(int command); // Distribute controls evenly between first and last + virtual wxWindow *FindParentOfSelection(); + + virtual wxFrame *OnCreateEditorFrame(const char *title); + virtual wxMenuBar *OnCreateEditorMenuBar(wxFrame *parent); + virtual wxResourceEditorScrolledWindow *OnCreateEditorPanel(wxFrame *parent); + virtual wxToolBar *OnCreateToolBar(wxFrame *parent); + + // Create a window information object for the given window + wxWindowPropertyInfo* CreatePropertyInfoForWindow(wxWindow *win); + // Edit the given window + void EditWindow(wxWindow *win); + + virtual void UpdateResourceList(); + virtual void AddItemsRecursively(long parent, wxItemResource *resource); + virtual bool EditSelectedResource(); + 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 + // the resources. Replaces OnClose. + virtual bool SaveInfoAndDeleteHandler(wxWindow* win); + + // Destroys the window. If this is the 'current' panel, NULLs the + // variable. + virtual bool DeleteWindow(wxWindow* win); + virtual bool DeleteResource(wxItemResource *res); + virtual bool DeleteResource(wxWindow *win); + + // Add bitmap resource if there isn't already one with this filename. + virtual wxString AddBitmapResource(const wxString& filename); + + // Delete the bitmap resource if it isn't being used by another resource. + virtual void PossiblyDeleteBitmapResource(const wxString& resourceName); + + // Helper function for above + virtual bool IsBitmapResourceUsed(const wxString& resourceName); + + wxItemResource *FindBitmapResourceByFilename(const wxString& filename); + + wxString 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, 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); + + virtual bool EditDialog(wxDialog *dialog, wxWindow *parent); + + void AddSelection(wxWindow *win); + void RemoveSelection(wxWindow *win); + + virtual void MakeUniqueName(char *prefix, char *buf); + + // (Dis)associate resource<->physical window + // Doesn't delete any windows. + virtual void AssociateResource(wxItemResource *resource, wxWindow *win); + virtual bool DisassociateResource(wxItemResource *resource); + virtual bool DisassociateResource(wxWindow *win); + virtual bool DisassociateWindows(); + virtual wxItemResource *FindResourceForWindow(wxWindow *win); + virtual wxWindow *FindWindowForResource(wxItemResource *resource); + + virtual bool InstantiateAllResourcesFromWindows(); + virtual bool InstantiateResourceFromWindow(wxItemResource *resource, wxWindow *window, bool recurse = FALSE); + + // Accessors + inline void SetEditorFrame(wxFrame *fr) { m_editorFrame = fr; } + inline void SetEditorToolBar(EditorToolBar *tb) { m_editorToolBar = tb; } + inline wxFrame *GetEditorFrame() const { return m_editorFrame; } + inline wxResourceEditorProjectTree *GetEditorResourceTree() const { return m_editorResourceTree; } + 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; } + + inline wxResourceTable& GetResourceTable() { return m_resourceTable; } + inline wxHashTable& GetResourceAssociations() { return m_resourceAssociations; } + + 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: - wxHelpController *helpInstance; - wxResourceTableWithSaving resourceTable; - wxFrame *editorFrame; - wxPanel *editorPanel; - wxMenu *popupMenu; - wxListBox *editorResourceList; - EditorToolPalette *editorPalette; - EditorToolBar *editorToolBar; - int nameCounter; - bool modified; - bool editMode; - wxHashTable resourceAssociations; - wxList selections; - wxString currentFilename; - - public: - - // Options to be saved/restored - wxString optionsResourceFilename; // e.g. dialoged.ini, .dialogrc - wxRectangle propertyWindowSize; - wxRectangle resourceEditorWindowSize; - - public: - static wxResourceManager *currentResourceManager; - - wxResourceManager(void); - ~wxResourceManager(void); - - bool Initialize(void); - - bool LoadOptions(void); - bool SaveOptions(void); - - // Show or hide the resource editor frame, which displays a list - // of resources with ability to edit them. - virtual bool ShowResourceEditor(bool show, wxWindow *parent = NULL, const char *title = "wxWindows Dialog Editor"); - - virtual bool Save(void); - virtual bool SaveAs(void); - virtual bool Save(const wxString& filename); - virtual bool Load(const wxString& filename); - virtual bool Clear(bool deleteWindows = TRUE, bool force = TRUE); - virtual void SetFrameTitle(const wxString& filename); - virtual bool DisassociateWindows(bool deleteWindows = TRUE); - virtual bool New(bool loadFromFile = TRUE, const wxString& filename = ""); - virtual bool SaveIfModified(void); - virtual void AlignItems(int flag); - virtual void CopySize(void); - virtual void ToBackOrFront(bool toBack); - virtual wxWindow *FindParentOfSelection(void); - - virtual wxFrame *OnCreateEditorFrame(const char *title); - virtual wxMenuBar *OnCreateEditorMenuBar(wxFrame *parent); - virtual wxPanel *OnCreateEditorPanel(wxFrame *parent); - virtual wxToolBarBase *OnCreateToolBar(wxFrame *parent); - virtual EditorToolPalette *OnCreatePalette(wxFrame *parent); -// virtual bool DeletePalette(void); - virtual bool InitializeTools(void); - - virtual void UpdateResourceList(void); - virtual void AddItemsRecursively(int level, wxItemResource *resource); - virtual bool EditSelectedResource(void); - virtual bool Edit(wxItemResource *res); - virtual bool CreateNewDialog(void); - virtual bool CreateNewPanel(void); - virtual bool CreatePanelItem(wxItemResource *panelResource, wxPanel *panel, char *itemType, int x = 10, int y = 10, bool isBitmap = FALSE); - - virtual bool DeleteSelection(bool deleteWindow = TRUE); - - virtual bool DeleteResource(wxItemResource *res); - virtual bool DeleteResource(wxWindow *win, bool deleteWindow = TRUE); - - // Add bitmap resource if there isn't already one with this filename. - virtual char *AddBitmapResource(char *filename); - - // Delete the bitmap resource if it isn't being used by another resource. - virtual void PossiblyDeleteBitmapResource(char *resourceName); - - // Helper function for above - virtual bool IsBitmapResourceUsed(char *resourceName); - - wxItemResource *FindBitmapResourceByFilename(char *filename); - - char *FindBitmapFilenameForResource(wxItemResource *resource); - - // 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 bool RecreateSelection(void); - - // Need to search through resource table removing this from - // any resource which has this as a parent. - virtual bool RemoveResourceFromParent(wxItemResource *res); - - virtual bool EditDialog(wxDialog *dialog, wxWindow *parent); - - inline void SetEditorFrame(wxFrame *fr) { editorFrame = fr; } - inline void SetEditorToolBar(EditorToolBar *tb) { editorToolBar = tb; } - inline void SetEditorPalette(EditorToolPalette *pal) { editorPalette = pal; } - inline wxFrame *GetEditorFrame(void) { return editorFrame; } - inline wxListBox *GetEditorResourceList(void) { return editorResourceList; } - inline EditorToolPalette *GetEditorPalette(void) { return editorPalette; } - inline wxList& GetSelections(void) { return selections; } - - void AddSelection(wxWindow *win); - void RemoveSelection(wxWindow *win); - -// inline void SetCurrentResource(wxItemResource *item) { currentResource = item; } -// inline void SetCurrentResourceWindow(wxWindow *win) { currentResourceWindow = win; } -// inline wxItemResource *GetCurrentResource(void) { return currentResource; } -// inline wxWindow *GetCurrentResourceWindow(void) { return currentResourceWindow; } - inline wxMenu *GetPopupMenu(void) { return popupMenu; } - - inline wxHelpController *GetHelpInstance(void) { return helpInstance; } - - virtual void MakeUniqueName(char *prefix, char *buf); - - // (Dis)associate resource<->physical window - virtual void AssociateResource(wxItemResource *resource, wxWindow *win); - virtual bool DisassociateResource(wxItemResource *resource, bool deleteWindow = TRUE); - virtual bool DisassociateResource(wxWindow *win, bool deleteWindow = TRUE); - virtual wxItemResource *FindResourceForWindow(wxWindow *win); - virtual wxWindow *FindWindowForResource(wxItemResource *resource); - - virtual bool InstantiateAllResourcesFromWindows(void); - virtual bool InstantiateResourceFromWindow(wxItemResource *resource, wxWindow *window, bool recurse = FALSE); - - virtual void Modify(bool mod = TRUE) { modified = mod; } - virtual bool Modified(void) { return modified; } - - inline bool GetEditMode(void) { return editMode; } - void SetEditMode(bool flag, bool changeCurrentResource = TRUE); - - inline wxResourceTable& GetResourceTable(void) { return resourceTable; } - inline wxHashTable& GetResourceAssociations(void) { return resourceAssociations; } - - inline wxString& GetCurrentFilename(void) { return currentFilename; } - -// void UsePosition(bool usePos, wxItemResource *resource = NULL, int x = 0, int y = 0); +#ifdef __WXMSW__ + wxHelpController* m_helpController; +#endif + wxResourceTableWithSaving m_resourceTable; + wxFrame* m_editorFrame; + wxResourceEditorScrolledWindow* m_editorPanel; + wxMenu* m_popupMenu; + wxResourceEditorProjectTree* m_editorResourceTree; + 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; + wxString m_currentFilename; + wxBitmap* m_bitmapImage; // Default for static bitmaps/buttons + + wxImageList m_imageList; + long m_rootDialogItem; // Root of dialog hierarchy in tree (unused) + + // Options to be saved/restored + wxString m_optionsResourceFilename; // e.g. dialoged.ini, .dialogrc + 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; }; -class wxResourceEditorFrame: public wxFrame -{ - public: - wxResourceManager *manager; - wxResourceEditorFrame(wxResourceManager *resMan, wxFrame *parent, char *title, int x = -1, int y = -1, int width = 600, int height = 400, - long style = 0, char *name = "frame"); - ~wxResourceEditorFrame(void); - void OldOnMenuCommand(int cmd); - bool OnClose(void); -}; -class wxResourceEditorPanel: public wxPanel +class wxResourceEditorFrame: public wxFrame { - public: - wxResourceEditorPanel(wxWindow *parent, int x = -1, int y = -1, int width = 600, int height = 400, - long style = 0, char *name = "panel"); - ~wxResourceEditorPanel(void); - void OnDefaultAction(wxControl *item); +public: + DECLARE_CLASS(wxResourceEditorFrame) + + wxResourceManager *manager; + wxResourceEditorFrame(wxResourceManager *resMan, wxFrame *parent, const wxString& title, + const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(600, 400), + long style = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame"); + ~wxResourceEditorFrame(); + + void OnCloseWindow(wxCloseEvent& event); + + void OnNew(wxCommandEvent& event); + void OnOpen(wxCommandEvent& event); + void OnNewDialog(wxCommandEvent& event); + void OnClear(wxCommandEvent& event); + void OnSave(wxCommandEvent& event); + void OnSaveAs(wxCommandEvent& event); + void OnExit(wxCommandEvent& event); + void OnAbout(wxCommandEvent& event); + void OnContents(wxCommandEvent& event); + void OnDeleteSelection(wxCommandEvent& event); + void OnRecreateSelection(wxCommandEvent& event); + void OnTest(wxCommandEvent& event); + void OnConvertWXRs(wxCommandEvent& event); + + DECLARE_EVENT_TABLE() }; -class DialogEditorPanelFrame: public wxFrame +class wxResourceEditorScrolledWindow: public wxScrolledWindow { - public: - DialogEditorPanelFrame(wxFrame *parent, char *title, int x, int y, int w, int h, long style, char *name): - wxFrame(parent, -1, title, wxPoint(x, y), wxSize(w, h), style, name) - { - } - bool OnClose(void); +public: + wxResourceEditorScrolledWindow(wxWindow *parent, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, + long style = 0); + ~wxResourceEditorScrolledWindow(); + + void OnPaint(wxPaintEvent& event); + + void DrawTitle(wxDC& dc); + + // Accessors + inline int GetMarginX() { return m_marginX; } + inline int GetMarginY() { return m_marginY; } + +public: + wxWindow* m_childWindow; +private: + int m_marginX, m_marginY; + + DECLARE_EVENT_TABLE() }; -// Edit menu -#define OBJECT_EDITOR_NEW_FRAME 220 -#define OBJECT_EDITOR_NEW_DIALOG 221 -#define OBJECT_EDITOR_NEW_PANEL 222 -#define OBJECT_EDITOR_NEW_CANVAS 223 -#define OBJECT_EDITOR_NEW_TEXT_WINDOW 224 -#define OBJECT_EDITOR_NEW_BUTTON 225 -#define OBJECT_EDITOR_NEW_CHECKBOX 226 -#define OBJECT_EDITOR_NEW_MESSAGE 227 -#define OBJECT_EDITOR_NEW_CHOICE 228 -#define OBJECT_EDITOR_NEW_LISTBOX 229 -#define OBJECT_EDITOR_NEW_RADIOBOX 230 -#define OBJECT_EDITOR_NEW_SLIDER 231 -#define OBJECT_EDITOR_NEW_TEXT 232 -#define OBJECT_EDITOR_NEW_MULTITEXT 233 -#define OBJECT_EDITOR_NEW_GAUGE 234 -#define OBJECT_EDITOR_NEW_GROUPBOX 235 - -#define OBJECT_EDITOR_NEW_ITEM 240 -#define OBJECT_EDITOR_NEW_SUBWINDOW 241 - -#define OBJECT_EDITOR_EDIT_MENU 250 -#define OBJECT_EDITOR_EDIT_ATTRIBUTES 251 -#define OBJECT_EDITOR_CLOSE_OBJECT 252 -#define OBJECT_EDITOR_DELETE_OBJECT 253 -#define OBJECT_EDITOR_EDIT_TOOLBAR 254 - -#define OBJECT_EDITOR_TOGGLE_TEST_MODE 255 - -#define OBJECT_EDITOR_RC_CONVERT 260 -#define OBJECT_EDITOR_RC_CONVERT_MENU 261 -#define OBJECT_EDITOR_RC_CONVERT_DIALOG 262 - -#define OBJECT_EDITOR_GRID 263 - -#define OBJECT_MENU_EDIT 1 -#define OBJECT_MENU_DELETE 2 +#define OBJECT_MENU_TITLE 1 +#define OBJECT_MENU_EDIT 2 +#define OBJECT_MENU_DELETE 3 /* - * Main toolbar - * - */ - -#if defined(__WINDOWS__) && defined(__WIN95__) -class EditorToolBar: public wxToolBar95 -#elif defined(__WINDOWS__) -class EditorToolBar: public wxToolBarMSW -#else -class EditorToolBar: public wxToolBarSimple -#endif +* Main toolbar +* +*/ + +class EditorToolBar: public wxToolBar { - public: - EditorToolBar(wxFrame *frame, int x = 0, int y = 0, int w = -1, int h = -1, - long style = 0, int direction = wxVERTICAL, int RowsOrColumns = 2); - bool OnLeftClick(int toolIndex, bool toggled); - void OnMouseEnter(int toolIndex); - void OnPaint(wxPaintEvent& event); - -DECLARE_EVENT_TABLE() +public: + EditorToolBar(wxFrame *frame, const wxPoint& pos = wxPoint(0, 0), const wxSize& size = wxSize(0, 0), + long style = wxTB_HORIZONTAL); + bool OnLeftClick(int toolIndex, bool toggled); + void OnMouseEnter(int toolIndex); + + DECLARE_EVENT_TABLE() }; // Toolbar ids -#define TOOLBAR_LOAD_FILE 1 -#define TOOLBAR_SAVE_FILE 2 -#define TOOLBAR_NEW 3 -// #define TOOLBAR_GEN_CLIPS 4 -#define TOOLBAR_TREE 5 -#define TOOLBAR_HELP 6 +#define TOOLBAR_LOAD_FILE 101 +#define TOOLBAR_SAVE_FILE 102 +#define TOOLBAR_NEW 103 +#define TOOLBAR_TREE 105 +#define TOOLBAR_HELP 106 // Formatting tools -#define TOOLBAR_FORMAT_HORIZ 10 -#define TOOLBAR_FORMAT_HORIZ_LEFT_ALIGN 11 -#define TOOLBAR_FORMAT_HORIZ_RIGHT_ALIGN 12 -#define TOOLBAR_FORMAT_VERT 13 -#define TOOLBAR_FORMAT_VERT_TOP_ALIGN 14 -#define TOOLBAR_FORMAT_VERT_BOT_ALIGN 15 - -#define TOOLBAR_TO_FRONT 16 -#define TOOLBAR_TO_BACK 17 -#define TOOLBAR_COPY_SIZE 18 +#define TOOLBAR_FORMAT_HORIZ 110 +#define TOOLBAR_FORMAT_HORIZ_LEFT_ALIGN 111 +#define TOOLBAR_FORMAT_HORIZ_RIGHT_ALIGN 112 +#define TOOLBAR_FORMAT_VERT 113 +#define TOOLBAR_FORMAT_VERT_TOP_ALIGN 114 +#define TOOLBAR_FORMAT_VERT_BOT_ALIGN 115 + +#define TOOLBAR_TO_FRONT 116 +#define TOOLBAR_TO_BACK 117 +#define TOOLBAR_COPY_SIZE 118 +#define TOOLBAR_COPY_WIDTH 119 +#define TOOLBAR_COPY_HEIGHT 120 +#define TOOLBAR_DISTRIBUTE_HORIZ 121 +#define TOOLBAR_DISTRIBUTE_VERT 122 + +/* +* 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