wxResourceManager *theResourceManager = NULL;
+#include "symbtabl.h"
+
bool MyApp::OnInit(void)
{
theResourceManager = new wxResourceManager;
#include "reseditr.h"
#include "winprop.h"
-#include "editrpal.h"
#include "dlghndlr.h"
#include "edlist.h"
case RESED_RADIOBOX:
resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxRadioBox", x, y);
break;
+ case RESED_RADIOBUTTON:
+ resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxRadioButton", x, y);
+ break;
case RESED_LISTBOX:
resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxListBox", x, y);
break;
wxResourceManager::GetCurrentResourceManager()->EditWindow(item);
return;
}
-
+
+/*
// If this is a wxStaticBox and the pointer isn't an arrow, chances
// are that we really meant to place an item on the panel.
// Fake this event.
OnLeftClick(x, y, keys);
return;
}
+*/
wxResourceEditorControlHandler *childHandler = (wxResourceEditorControlHandler *)item->GetEventHandler();
+++ /dev/null
-/////////////////////////////////////////////////////////////////////////////
-// Name: editrpal.cpp
-// Purpose: Editor tool palette
-// Author: Julian Smart
-// Modified by:
-// Created: 04/01/98
-// RCS-ID: $Id$
-// Copyright: (c) Julian Smart
-// Licence: wxWindows license
-/////////////////////////////////////////////////////////////////////////////
-
-#ifdef __GNUG__
-#pragma implementation "editrpal.h"
-#endif
-
-// For compilers that support precompilation, includes "wx/wx.h".
-#include "wx/wxprec.h"
-
-#ifdef __BORLANDC__
-#pragma hdrstop
-#endif
-
-#ifndef WX_PRECOMP
-#include "wx/wx.h"
-#endif
-
-#include <ctype.h>
-#include <stdlib.h>
-#include <math.h>
-#include <string.h>
-
-#if defined(__WXMSW__) && !defined(__GNUWIN32__)
-#include <strstrea.h>
-#else
-#include <strstream.h>
-#endif
-
-#include "reseditr.h"
-#include "editrpal.h"
-
-#ifdef __X__
-#include "bitmaps/frame.xbm"
-#include "bitmaps/dialog.xbm"
-#include "bitmaps/panel.xbm"
-#include "bitmaps/canvas.xbm"
-#include "bitmaps/textsw.xbm"
-#include "bitmaps/message.xbm"
-#include "bitmaps/button.xbm"
-#include "bitmaps/check.xbm"
-#include "bitmaps/listbox.xbm"
-#include "bitmaps/radio.xbm"
-#include "bitmaps/choice.xbm"
-#include "bitmaps/text.xbm"
-#include "bitmaps/mtext.xbm"
-#include "bitmaps/slider.xbm"
-#include "bitmaps/arrow.xbm"
-#include "bitmaps/group.xbm"
-#include "bitmaps/gauge.xbm"
-#include "bitmaps/scroll.xbm"
-#include "bitmaps/picture.xbm"
-#include "bitmaps/bmpbuttn.xbm"
-#endif
-
-/*
- * Object editor tool palette
- *
- */
-
-BEGIN_EVENT_TABLE(EditorToolPalette, wxToolBarSimple)
- EVT_PAINT(EditorToolPalette::OnPaint)
-END_EVENT_TABLE()
-
-EditorToolPalette::EditorToolPalette(wxResourceManager *manager, wxFrame *frame, int x, int y, int w, int h,
- long style, int direction, int RowsOrColumns):
- TOOLPALETTECLASS(frame, -1, wxPoint(x, y), wxSize(w, h), style, direction, RowsOrColumns)
-{
- currentlySelected = -1;
- resourceManager = manager;
-}
-
-bool EditorToolPalette::OnLeftClick(int toolIndex, bool toggled)
-{
- // BEGIN mutual exclusivity code
- if (toggled && (currentlySelected != -1) && (toolIndex != currentlySelected))
- ToggleTool(currentlySelected, FALSE);
-
- if (toggled)
- currentlySelected = toolIndex;
- else if (currentlySelected == toolIndex)
- currentlySelected = -1;
- // END mutual exclusivity code
-/*
- if (MainFrame)
- {
- if (toggled && (toolIndex != PALETTE_ARROW))
- MainFrame->canvas->SetCursor(crossCursor);
- else
- MainFrame->canvas->SetCursor(handCursor);
- }
-*/
-
- return TRUE;
-}
-
-void EditorToolPalette::OnMouseEnter(int toolIndex)
-{
- if (!resourceManager) return;
- wxFrame *managerFrame = resourceManager->GetEditorFrame();
-
- if (toolIndex > -1)
- {
- switch (toolIndex)
- {
- case PALETTE_FRAME:
- managerFrame->SetStatusText("wxFrame");
- break;
- case PALETTE_DIALOG_BOX:
- managerFrame->SetStatusText("wxDialog");
- break;
- case PALETTE_PANEL:
- managerFrame->SetStatusText("wxPanel");
- break;
-#if 0
- case PALETTE_CANVAS:
- managerFrame->SetStatusText("wxCanvas");
- break;
- case PALETTE_TEXT_WINDOW:
- managerFrame->SetStatusText("wxTextWindow");
- break;
-#endif
- case PALETTE_BUTTON:
- managerFrame->SetStatusText("wxButton");
- break;
- case PALETTE_MESSAGE:
- managerFrame->SetStatusText("wxStaticText");
- break;
- case PALETTE_TEXT:
- managerFrame->SetStatusText("wxTextCtrl (single-line)");
- break;
- case PALETTE_MULTITEXT:
- managerFrame->SetStatusText("wxTextCtrl (multi-line)");
- break;
- case PALETTE_CHOICE:
- managerFrame->SetStatusText("wxChoice");
- break;
- case PALETTE_CHECKBOX:
- managerFrame->SetStatusText("wxCheckBox");
- break;
- case PALETTE_RADIOBOX:
- managerFrame->SetStatusText("wxRadioBox");
- break;
- case PALETTE_LISTBOX:
- managerFrame->SetStatusText("wxListBox");
- break;
- case PALETTE_SLIDER:
- managerFrame->SetStatusText("wxSlider");
- break;
- case PALETTE_GROUPBOX:
- managerFrame->SetStatusText("wxStaticBox");
- break;
- case PALETTE_GAUGE:
- managerFrame->SetStatusText("wxGauge");
- break;
- case PALETTE_BITMAP_MESSAGE:
- managerFrame->SetStatusText("wxStaticBitmap");
- break;
- case PALETTE_BITMAP_BUTTON:
- managerFrame->SetStatusText("wxBitmapButton");
- break;
- case PALETTE_SCROLLBAR:
- managerFrame->SetStatusText("wxScrollBar");
- break;
- case PALETTE_ARROW:
- managerFrame->SetStatusText("Pointer");
- break;
- }
- }
- else managerFrame->SetStatusText("");
-}
-
-void EditorToolPalette::OnPaint(wxPaintEvent& event)
-{
- TOOLPALETTECLASS::OnPaint(event);
-
- wxPaintDC dc(this);
-
- int w, h;
- GetSize(&w, &h);
- dc.SetPen(wxBLACK_PEN);
- dc.SetBrush(wxTRANSPARENT_BRUSH);
- dc.DrawLine(0, h-1, w, h-1);
-}
-
-EditorToolPalette *wxResourceManager::OnCreatePalette(wxFrame *parent)
-{
- // Load palette bitmaps
-#ifdef __WXMSW__
- wxBitmap PaletteMessageBitmap("MESSAGETOOL");
- wxBitmap PaletteButtonBitmap("BUTTONTOOL");
- wxBitmap PaletteCheckBoxBitmap("CHECKBOXTOOL");
- wxBitmap PaletteListBoxBitmap("LISTBOXTOOL");
- wxBitmap PaletteRadioBoxBitmap("RADIOBOXTOOL");
- wxBitmap PaletteChoiceBitmap("CHOICETOOL");
- wxBitmap PaletteTextBitmap("TEXTTOOL");
- wxBitmap PaletteMultiTextBitmap("MULTITEXTTOOL");
- wxBitmap PaletteSliderBitmap("SLIDERTOOL");
- wxBitmap PaletteArrowBitmap("ARROWTOOL");
- wxBitmap PaletteGroupBitmap("GROUPTOOL");
- wxBitmap PaletteGaugeBitmap("GAUGETOOL");
- wxBitmap PalettePictureBitmap("PICTURETOOL");
- wxBitmap PaletteBitmapButtonBitmap("BMPBUTTONTOOL");
- wxBitmap PaletteScrollbarBitmap("SCROLLBARTOOL");
-#endif
-#ifdef __X__
- wxBitmap PaletteMessageBitmap(message_bits, message_width, message_height);
- wxBitmap PaletteButtonBitmap(button_bits, button_width, button_height);
- wxBitmap PaletteCheckBoxBitmap(check_bits, check_width, check_height);
- wxBitmap PaletteListBoxBitmap(listbox_bits, listbox_width, listbox_height);
- wxBitmap PaletteRadioBoxBitmap(radio_bits, radio_width, radio_height);
- wxBitmap PaletteChoiceBitmap(choice_bits, choice_width, choice_height);
- wxBitmap PaletteTextBitmap(text_bits, text_width, text_height);
- wxBitmap PaletteMultiTextBitmap(mtext_bits, mtext_width, mtext_height);
- wxBitmap PaletteSliderBitmap(slider_bits, slider_width, slider_height);
- wxBitmap PaletteArrowBitmap(arrow_bits, arrow_width, arrow_height);
- wxBitmap PaletteGroupBitmap(group_bits, group_width, group_height);
- wxBitmap PaletteGaugeBitmap(gauge_bits, gauge_width, gauge_height);
- wxBitmap PalettePictureBitmap(picture_bits, picture_width, picture_height);
- wxBitmap PaletteBitmapButtonBitmap(bmpbuttn_bits, bmpbuttn_width, bmpbuttn_height);
- wxBitmap PaletteScrollbarBitmap(scroll_bits, scroll_width, scroll_height);
-#endif
-
- EditorToolPalette *palette = new EditorToolPalette(this, parent, 0, 0, -1, -1, wxNO_BORDER, // wxTB_3DBUTTONS,
- wxVERTICAL, 1);
-
- palette->SetMargins(2, 2);
-/*
-#ifdef __WXMSW__
- if (palette->IsKindOf(CLASSINFO(wxToolBarMSW)))
- ((wxToolBarMSW *)palette)->SetDefaultSize(22, 22);
-#endif
-*/
-
- palette->AddTool(PALETTE_ARROW, PaletteArrowBitmap, (wxBitmap *)NULL, TRUE, 0, -1, NULL, "Pointer");
- palette->AddTool(PALETTE_MESSAGE, PaletteMessageBitmap, (wxBitmap *)NULL, TRUE, 0, -1, NULL, "wxStaticText");
- palette->AddTool(PALETTE_BITMAP_MESSAGE, PalettePictureBitmap, (wxBitmap *)NULL, TRUE, 0, -1, NULL, "wxStaticBitmap");
- palette->AddTool(PALETTE_BUTTON, PaletteButtonBitmap, (wxBitmap *)NULL, TRUE, 0, -1, NULL, "Button");
- palette->AddTool(PALETTE_BITMAP_BUTTON, PaletteBitmapButtonBitmap, (wxBitmap *)NULL, TRUE, 0, -1, NULL, "wxBitmapButton");
- palette->AddTool(PALETTE_CHECKBOX, PaletteCheckBoxBitmap, (wxBitmap *)NULL, TRUE, 0, -1, NULL, "wxCheckBox");
- palette->AddTool(PALETTE_RADIOBOX, PaletteRadioBoxBitmap, (wxBitmap *)NULL, TRUE, 0, -1, NULL, "wxRadioBox");
- palette->AddTool(PALETTE_LISTBOX, PaletteListBoxBitmap, (wxBitmap *)NULL, TRUE, 0, -1, NULL, "wxListBox");
- palette->AddTool(PALETTE_CHOICE, PaletteChoiceBitmap, (wxBitmap *)NULL, TRUE, 0, -1, NULL, "wxChoice");
- palette->AddTool(PALETTE_TEXT, PaletteTextBitmap, (wxBitmap *)NULL, TRUE, 0, -1, NULL, "wxTextCtrl (single-line)");
- palette->AddTool(PALETTE_MULTITEXT, PaletteMultiTextBitmap, (wxBitmap *)NULL, TRUE, 0, -1, NULL, "wxTextCtrl (multi-line)");
- palette->AddTool(PALETTE_SLIDER, PaletteSliderBitmap, (wxBitmap *)NULL, TRUE, 0, -1, NULL, "wxSlider");
- palette->AddTool(PALETTE_GROUPBOX, PaletteGroupBitmap, (wxBitmap *)NULL, TRUE, 0, -1, NULL, "wxStaticBox");
- palette->AddTool(PALETTE_GAUGE, PaletteGaugeBitmap, (wxBitmap *)NULL, TRUE, 0, -1, NULL, "wxGauge");
- palette->AddTool(PALETTE_SCROLLBAR, PaletteScrollbarBitmap, (wxBitmap *)NULL, TRUE, 0, -1, NULL, "wxScrollBar");
-
- palette->Layout();
- palette->CreateTools();
-
- palette->ToggleTool(PALETTE_ARROW, TRUE);
- palette->currentlySelected = PALETTE_ARROW;
- return palette;
-}
-
+++ /dev/null
-/////////////////////////////////////////////////////////////////////////////
-// Name: editrpal.h
-// Purpose: Tool palette
-// Author: Julian Smart
-// Modified by:
-// Created: 04/01/98
-// RCS-ID: $Id$
-// Copyright: (c) Julian Smart
-// Licence: wxWindows license
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef _EDITRPAL_H_
-#define _EDITRPAL_H_
-
-#ifdef __GNUG__
-#pragma interface "editrpal.h"
-#endif
-
-#include "wx/wx.h"
-#include "wx/string.h"
-#include "wx/layout.h"
-#include "wx/resource.h"
-#include "wx/tbarsmpl.h"
-
-#include "proplist.h"
-
-/*
- * Object editor tool palette
- *
- */
-
-// For some reason, wxButtonBar under Windows 95 cannot be moved to a non-0,0 position!
-#define TOOLPALETTECLASS wxToolBarSimple
-
-class EditorToolPalette: public TOOLPALETTECLASS
-{
- public:
- int currentlySelected;
- wxResourceManager *resourceManager;
-
- EditorToolPalette(wxResourceManager *manager, wxFrame *frame, int x = 0, int y = 0, int w = -1, int h = -1,
- long style = wxNO_BORDER, int direction = wxVERTICAL, int RowsOrColumns = 2);
- bool OnLeftClick(int toolIndex, bool toggled);
- void OnMouseEnter(int toolIndex);
- void OnPaint(wxPaintEvent& event);
-
-DECLARE_EVENT_TABLE()
-};
-
-#define PALETTE_FRAME 1
-#define PALETTE_DIALOG_BOX 2
-#define PALETTE_PANEL 3
-#define PALETTE_CANVAS 4
-#define PALETTE_TEXT_WINDOW 5
-#define PALETTE_MESSAGE 6
-#define PALETTE_BUTTON 7
-#define PALETTE_CHECKBOX 8
-#define PALETTE_LISTBOX 9
-#define PALETTE_RADIOBOX 10
-#define PALETTE_CHOICE 11
-#define PALETTE_TEXT 12
-#define PALETTE_MULTITEXT 13
-#define PALETTE_SLIDER 14
-#define PALETTE_ARROW 15
-#define PALETTE_GAUGE 16
-#define PALETTE_GROUPBOX 17
-#define PALETTE_BITMAP_MESSAGE 18
-#define PALETTE_BITMAP_BUTTON 19
-#define PALETTE_SCROLLBAR 20
-
-#endif
!endif
CPPFLAGS=$(DEBUG_FLAGS) $(OPT) @$(CFG) @$(INCFILE)
-OBJECTS = dialoged.obj editrpal.obj reseditr.obj dlghndlr.obj reswrite.obj winprop.obj edtree.obj edlist.obj
+OBJECTS = dialoged.obj reseditr.obj dlghndlr.obj reswrite.obj winprop.obj edtree.obj edlist.obj
$(TARGET).exe: wxprop $(INCFILE) $(OBJECTS) $(TARGET).def $(TARGET).res
tlink32 $(LINKFLAGS) @&&!
# this central makefile.
include $(WXDIR)/src/makeg95.env
-OBJECTS = $(OBJDIR)/dialoged.$(OBJSUFF) $(OBJDIR)/editrpal.$(OBJSUFF) $(OBJDIR)/reseditr.$(OBJSUFF)\
+OBJECTS = $(OBJDIR)/dialoged.$(OBJSUFF) $(OBJDIR)/reseditr.$(OBJSUFF)\
$(OBJDIR)/dlghndlr.$(OBJSUFF) $(OBJDIR)/reswrite.$(OBJSUFF) $(OBJDIR)/winprop.$(OBJSUFF)\
$(OBJDIR)/edlist.$(OBJSUFF) $(OBJDIR)/edtree.$(OBJSUFF)\
$(OBJDIR)/dialoged_resources.$(OBJSUFF)
$(OBJDIR)/dialoged.$(OBJSUFF): dialoged.$(SRCSUFF)
$(CC) -c $(CPPFLAGS) -o $@ dialoged.$(SRCSUFF)
-$(OBJDIR)/editrpal.$(OBJSUFF): winprop.h reseditr.h editrpal.h editrpal.$(SRCSUFF)
- $(CC) -c $(CPPFLAGS) -o $@ editrpal.$(SRCSUFF)
-
$(OBJDIR)/winprop.$(OBJSUFF): winprop.h reseditr.h editrpal.h winprop.$(SRCSUFF)
$(CC) -c $(CPPFLAGS) -o $@ winprop.$(SRCSUFF)
PROGRAM=dialoged
-OBJECTS = dialoged.obj editrpal.obj reseditr.obj dlghndlr.obj reswrite.obj winprop.obj edtree.obj edlist.obj
+OBJECTS = dialoged.obj reseditr.obj dlghndlr.obj reswrite.obj\
+ winprop.obj edtree.obj edlist.obj symbtabl.obj
all: wxprop dialoged.exe
$(LIBS)
<<
-dialoged.obj: winprop.h reseditr.h editrpal.h dialoged.$(SRCSUFF) $(DUMMYOBJ)
+dialoged.obj: winprop.h reseditr.h dialoged.$(SRCSUFF) $(DUMMYOBJ)
$(cc) @<<
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
<<
-winprop.obj: winprop.h reseditr.h editrpal.h winprop.$(SRCSUFF) $(DUMMYOBJ)
+winprop.obj: winprop.h reseditr.h winprop.$(SRCSUFF) $(DUMMYOBJ)
$(cc) @<<
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
<<
-editrpal.obj: winprop.h reseditr.h editrpal.h editrpal.$(SRCSUFF) $(DUMMYOBJ)
+reswrite.obj: winprop.h reseditr.h reswrite.$(SRCSUFF) $(DUMMYOBJ)
$(cc) @<<
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
<<
-reswrite.obj: winprop.h reseditr.h editrpal.h reswrite.$(SRCSUFF) $(DUMMYOBJ)
+reseditr.obj: winprop.h reseditr.h reseditr.$(SRCSUFF) $(DUMMYOBJ)
$(cc) @<<
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
<<
-reseditr.obj: winprop.h reseditr.h editrpal.h reseditr.$(SRCSUFF) $(DUMMYOBJ)
+edtree.obj: winprop.h reseditr.h edtree.h edtree.$(SRCSUFF) $(DUMMYOBJ)
$(cc) @<<
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
<<
-edtree.obj: winprop.h reseditr.h editrpal.h edtree.h edtree.$(SRCSUFF) $(DUMMYOBJ)
+edlist.obj: winprop.h reseditr.h edlist.h edlist.$(SRCSUFF) $(DUMMYOBJ)
$(cc) @<<
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
<<
-edlist.obj: winprop.h reseditr.h edlist.h edlist.$(SRCSUFF) $(DUMMYOBJ)
+dlghndlr.obj: winprop.h reseditr.h dlghndlr.$(SRCSUFF) $(DUMMYOBJ)
$(cc) @<<
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
<<
-dlghndlr.obj: winprop.h reseditr.h editrpal.h dlghndlr.$(SRCSUFF) $(DUMMYOBJ)
+symbtabl.obj: symbtabl.h symbtabl.$(SRCSUFF) $(DUMMYOBJ)
$(cc) @<<
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
<<
#include "reseditr.h"
#include "winprop.h"
-#include "editrpal.h"
#include "dlghndlr.h"
#include "edtree.h"
#include "edlist.h"
m_popupMenu = NULL;
m_editorResourceTree = NULL;
m_editorControlList = NULL;
- m_editorPalette = NULL;
m_nameCounter = 1;
m_modified = FALSE;
m_currentFilename = "";
+ m_symbolFilename = "";
m_editorToolBar = NULL;
// Default window positions
m_editorFrame->SetMenuBar(menuBar);
m_editorToolBar = (EditorToolBar *)OnCreateToolBar(m_editorFrame);
-// m_editorPalette = OnCreatePalette(m_editorFrame);
m_editorControlList = new wxResourceEditorControlList(m_editorFrame, IDC_LISTCTRL, wxPoint(0, 0), wxSize(-1, -1));
m_editorResourceTree = new wxResourceEditorProjectTree(m_editorFrame, IDC_TREECTRL, wxPoint(0, 0), wxSize(-1, -1),
wxTR_HAS_BUTTONS);
c->width.Unconstrained();
c->height.Absolute(28);
m_editorToolBar->SetConstraints(c);
-/*
- // Constraints for palette
- c = new wxLayoutConstraints;
- c->left.SameAs (m_editorFrame, wxLeft, 0);
- c->top.SameAs (m_editorToolBar, wxBottom, 0);
- c->right.SameAs (m_editorFrame, wxRight, 0);
- c->bottom.Unconstrained();
- c->width.Unconstrained();
- c->height.Absolute(34);
- m_editorPalette->SetConstraints(c);
-*/
+
// Constraints for listbox
c = new wxLayoutConstraints;
c->left.SameAs (m_editorFrame, wxLeft, 0);
SetFrameTitle(m_currentFilename);
UpdateResourceList();
+
+ // Construct include filename from this file
+ m_symbolFilename = m_currentFilename;
+
+ if (m_symbolFilename[0] == 'c')
+ {
+ }
+
+ wxString stringA("123456.45");
+ wxString stringB("");
+ stringB = str;
+
+ size_t i = 0;
+ char c = stringB[i];
+#if 0
+ size_t len = stringB.Length();
+ size_t i = len-1;
+ while (i > 0)
+ {
+ // if (buffer.GetChar(i) == '.')
+ if (stringB[i] == '.')
+ {
+ stringB = stringB.Left(i);
+ break;
+ }
+ i --;
+ }
+#endif
+
+#if 0
+ size_t len = m_symbolFilename.Length();
+ size_t i = len-1;
+ while (i > 0)
+ {
+ // if (buffer.GetChar(i) == '.')
+ if (m_symbolFilename[i] == '.')
+ {
+ m_symbolFilename = m_symbolFilename.Left(i);
+ break;
+ }
+ i --;
+ }
+#endif
+// wxStripExtension(m_symbolFilename);
+ m_symbolFilename += ".h";
+
+ if (!m_symbolTable.ReadIncludeFile(m_symbolFilename))
+ {
+ wxString str("Could not find include file ");
+ str += m_symbolFilename;
+ wxMessageBox(str, "Dialog Editor Warning", MB_OK);
+ }
}
else
{
ClearCurrentDialog();
DisassociateWindows();
+ m_symbolTable.Clear();
m_resourceTable.ClearTable();
UpdateResourceList();
// variable.
bool wxResourceManager::DeleteWindow(wxWindow* win)
{
+ bool clearDisplay = FALSE;
if (m_editorPanel->m_childWindow == win)
+ {
m_editorPanel->m_childWindow = NULL;
+ clearDisplay = TRUE;
+ }
win->Destroy();
+
+ if (clearDisplay)
+ m_editorPanel->Clear();
+
return TRUE;
}
bool wxResourceManager::EditSelectedResource()
{
int sel = m_editorResourceTree->GetSelection();
- if (sel > -1)
+ if (sel != 0)
{
wxItemResource *res = (wxItemResource *)m_editorResourceTree->GetItemData(sel);
return Edit(res);
wxHORIZONTAL, wxDefaultValidator, buf);
res->SetStringValues(new wxStringList("One", "Two", NULL));
}
+ else if (itemType == "wxRadioButton")
+ {
+ MakeUniqueName("radiobutton", buf);
+ res->SetName(buf);
+ wxString names[] = { "One", "Two" };
+ newItem = new wxRadioButton(panel, -1, "Radiobutton", wxPoint(x, y), wxSize(-1, -1),
+ 0, wxDefaultValidator, buf);
+ }
else if (itemType == "wxChoice")
{
MakeUniqueName("choice", buf);
}
}
+bool wxResourceManager::TestCurrentDialog(wxWindow* parent)
+{
+ if (m_editorPanel->m_childWindow)
+ {
+ wxItemResource* item = FindResourceForWindow(m_editorPanel->m_childWindow);
+ if (!item)
+ return FALSE;
+
+ // Make sure the resources are up-to-date w.r.t. the window
+ InstantiateResourceFromWindow(item, m_editorPanel->m_childWindow, TRUE);
+
+ wxDialog* dialog = new wxDialog;
+ long oldStyle = item->GetStyle();
+ bool success = FALSE;
+ item->SetStyle(wxDEFAULT_DIALOG_STYLE);
+ if (dialog->LoadFromResource(parent, item->GetName(), & m_resourceTable))
+ {
+ dialog->Centre();
+ dialog->ShowModal();
+ success = TRUE;
+ }
+ item->SetStyle(oldStyle);
+ return success;
+ }
+ return FALSE;
+}
+
// Find the first dialog or panel for which
// there is a selected panel item.
wxWindow *wxResourceManager::FindParentOfSelection()
bool wxResourceManager::DeleteSelection()
{
int sel = m_editorResourceTree->GetSelection();
- if (sel > -1)
+ if (sel != 0)
{
wxItemResource *res = (wxItemResource *)m_editorResourceTree->GetItemData(sel);
wxWindow *win = FindWindowForResource(res);
{
info = new wxRadioBoxPropertyInfo(win);
}
+ else if (win->IsKindOf(CLASSINFO(wxRadioButton)))
+ {
+ info = new wxRadioButtonPropertyInfo(win);
+ }
else if (win->IsKindOf(CLASSINFO(wxChoice)))
{
info = new wxChoicePropertyInfo(win);
void wxResourceEditorFrame::OnTest(wxCommandEvent& event)
{
- // TODO should show the current dialog
+ manager->TestCurrentDialog(this);
}
void wxResourceEditorFrame::OnContents(wxCommandEvent& event)
}
manager->SetEditorFrame(NULL);
manager->SetEditorToolBar(NULL);
- manager->SetEditorPalette(NULL);
return TRUE;
}
#include "wx/imaglist.h"
#include "proplist.h"
+#include "symbtabl.h"
#define RESED_DELETE 1
#define RESED_RECREATE 3
*/
class wxResourceEditorFrame;
-class EditorToolPalette;
class EditorToolBar;
class wxWindowPropertyInfo;
class wxResourceEditorProjectTree;
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);
virtual wxMenuBar *OnCreateEditorMenuBar(wxFrame *parent);
virtual wxResourceEditorScrolledWindow *OnCreateEditorPanel(wxFrame *parent);
virtual wxToolBarBase *OnCreateToolBar(wxFrame *parent);
- virtual EditorToolPalette *OnCreatePalette(wxFrame *parent);
// Create a window information object for the give window
wxWindowPropertyInfo* CreatePropertyInfoForWindow(wxWindow *win);
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
// 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; }
inline wxHelpController *GetHelpController() const { return m_helpController; }
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; }
wxMenu* m_popupMenu;
wxResourceEditorProjectTree* m_editorResourceTree;
wxResourceEditorControlList* m_editorControlList;
- EditorToolPalette* m_editorPalette;
EditorToolBar* m_editorToolBar;
int m_nameCounter;
bool m_modified;
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;
};
OutputFont(stream, item->GetFont());
}
}
+ else if (itemType == "wxRadioButton")
+ {
+ GenerateRadioButtonStyleString(item->GetStyle(), styleBuf);
+ stream << "wxRadioButton, " << SafeWord(item->GetTitle()) << ", '" << styleBuf << "', ";
+ stream << SafeWord(item->GetName()) << ", " << item->GetX() << ", " << item->GetY() << ", ";
+ stream << item->GetWidth() << ", " << item->GetHeight();
+ stream << ", " << item->GetValue1();
+ if (item->GetFont())
+ {
+ stream << ",\\\n ";
+ OutputFont(stream, item->GetFont());
+ }
+ }
else if (itemType == "wxStaticBox")
{
GenerateGroupBoxStyleString(item->GetStyle(), styleBuf);
strcat(buf, "0");
}
+void wxResourceTableWithSaving::GenerateRadioButtonStyleString(long windowStyle, char *buf)
+{
+ buf[0] = 0;
+ GenerateItemStyleString(windowStyle, buf);
+
+ if (strlen(buf) == 0)
+ strcat(buf, "0");
+}
+
void wxResourceTableWithSaving::GenerateListBoxStyleString(long windowStyle, char *buf)
{
buf[0] = 0;
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: symbtabl.cpp
+// Purpose: wxResourceSymbolTable
+// Author: Julian Smart
+// Modified by:
+// Created: 04/01/98
+// RCS-ID: $Id$
+// Copyright: (c) Julian Smart
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+#ifdef __GNUG__
+#pragma implementation "symbtabl.h"
+#endif
+
+// For compilers that support precompilation, includes "wx/wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+#pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+#include "wx/wx.h"
+#endif
+
+#include <wx/file.h>
+
+#include <string.h>
+#include <stdlib.h>
+
+#include "symbtabl.h"
+
+wxResourceSymbolTable::wxResourceSymbolTable():
+ m_hashTable(wxKEY_STRING)
+{
+}
+
+wxResourceSymbolTable::~wxResourceSymbolTable()
+{
+ Clear();
+}
+
+// Operations
+
+bool wxResourceSymbolTable::ReadIncludeFile(const wxString& filename)
+{
+ wxFile file;
+ if (!file.Open(filename, wxFile::read))
+ return FALSE;
+
+ off_t len = file.Length();
+ if (len == -1)
+ return FALSE;
+
+ wxString str;
+ char* p = str.GetWriteBuf(len + 1);
+
+ if (file.Read(p, len) == ofsInvalid)
+ {
+ str.UngetWriteBuf();
+ return FALSE;
+ }
+ str.UngetWriteBuf();
+
+ // Look for #define occurrences
+ size_t pos = str.Find("#define");
+ while (pos != -1)
+ {
+ size_t len = str.Length();
+
+ size_t i = pos + 8;
+
+ // Eat whitespace until symbol
+ while ((str[i] == ' ' || str[i] == '\t') && (i < len))
+ i ++;
+
+ size_t start = i;
+
+ // Eat symbol
+ while (str[i] != ' ' && str[i] != '\t' && (i < len))
+ i ++;
+ size_t end = i-1;
+
+ wxString symbol(str.Mid(start, (end - start + 1)));
+
+ // Eat whitespace until number
+ while ((str[i] == ' ' || str[i] == '\t') && (i < len))
+ i ++;
+
+ size_t startNum = i;
+
+ // Eat number
+ while (str[i] != ' ' && str[i] != '\t' && str[i] != '\n' && (i < len))
+ i ++;
+
+ size_t endNum = i-1;
+
+ wxString numStr(str.Mid(startNum, (endNum - startNum + 1)));
+
+ long id = atol(numStr);
+
+ AddSymbol(symbol, id);
+
+ str = str.Right(len - i);
+ pos = str.Find("#define");
+ }
+
+ return TRUE;
+}
+
+bool wxResourceSymbolTable::WriteIncludeFile(const wxString& filename)
+{
+ wxFile file;
+ if (!file.Open(filename, wxFile::write))
+ return FALSE;
+
+ m_hashTable.BeginFind();
+
+ wxNode* node = m_hashTable.Next();
+ while (node)
+ {
+ char* str = node->key.string;
+ long id = (long) node->Data() ;
+
+ wxString line;
+ line.Printf("#define %s %ld\n", str, id);
+
+ file.Write(line, line.Length());
+
+ node = m_hashTable.Next();
+ }
+ return TRUE;
+}
+
+void wxResourceSymbolTable::Clear()
+{
+ m_hashTable.Clear();
+}
+
+bool wxResourceSymbolTable::AddSymbol(const wxString& symbol, long id)
+{
+ m_hashTable.Put(symbol, (wxObject*) id);
+ return TRUE;
+}
+
+// Accessors
+wxString wxResourceSymbolTable::GetSymbolForId(long id)
+{
+ m_hashTable.BeginFind();
+
+ wxNode* node = m_hashTable.Next();
+ while (node)
+ {
+ char* str = node->key.string;
+ if (str && ( ((long) node->Data()) == id) )
+ return wxString(str);
+
+ node = m_hashTable.Next();
+ }
+ return wxString("");
+}
+
+long wxResourceSymbolTable::GetIdForSymbol(const wxString& symbol)
+{
+ return (long) m_hashTable.Get(symbol);
+}
+
+bool wxResourceSymbolTable::SymbolExists(const wxString& symbol) const
+{
+ return (m_hashTable.Get(symbol) != NULL);
+}
+
--- /dev/null
+/////////////////////////////////////////////////////////////////////////////
+// Name: symbtabl.h
+// Purpose: wxResourceSymbolTable class for storing/reading #defines
+// Author: Julian Smart
+// Modified by:
+// Created: 04/01/98
+// RCS-ID: $Id$
+// Copyright: (c) Julian Smart
+// Licence: wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _SYMBTABL_H_
+#define _SYMBTABL_H_
+
+#ifdef __GNUG__
+#pragma interface "symbtabl.h"
+#endif
+
+class wxResourceSymbolTable: public wxObject
+{
+public:
+ wxResourceSymbolTable();
+ ~wxResourceSymbolTable();
+
+// Operations
+ bool ReadIncludeFile(const wxString& filename);
+ bool WriteIncludeFile(const wxString& filename);
+ void Clear();
+ bool AddSymbol(const wxString& symbol, long id);
+
+// Accessors
+ wxString GetSymbolForId(long id);
+ long GetIdForSymbol(const wxString& symbol);
+ bool SymbolExists(const wxString& symbol) const;
+
+// Implementation
+
+// Member variables
+protected:
+ wxHashTable m_hashTable;
+};
+
+#endif
+ // _SYMBTABL_H_
+
#endif
#include "reseditr.h"
-#include "editrpal.h"
#include "winprop.h"
// Causes immediate feedback.
propDialog->m_registry.RegisterValidator((wxString)"bool", new wxBoolListValidator);
propDialog->m_registry.RegisterValidator((wxString)"filename", new wxFilenameListValidator);
propDialog->m_registry.RegisterValidator((wxString)"stringlist", new wxListOfStringsListValidator);
+ propDialog->m_registry.RegisterValidator((wxString)"window_id", new wxResourceSymbolValidator);
propDialog->m_propInfo = this;
propDialog->m_propSheet = propSheet;
propertyWindow->GetSize(&width, &height);
return new wxProperty("height", (long)height, "integer");
}
+ else if (name == "id")
+ {
+ wxString symbolName("TODO");
+ return new wxProperty("id", symbolName, "window_id");
+ }
else
return NULL;
}
}
return TRUE;
}
+ else if (name == "id")
+ {
+ // TODO
+ return TRUE;
+ }
else
return FALSE;
}
void wxWindowPropertyInfo::GetPropertyNames(wxStringList& names)
{
+ names.Add("id");
names.Add("name");
names.Add("x");
names.Add("y");
return wxItemPropertyInfo::InstantiateResource(resource);
}
+/*
+ * Radiobutton item
+ */
+
+wxProperty *wxRadioButtonPropertyInfo::GetProperty(wxString& name)
+{
+ wxRadioButton *checkBox = (wxRadioButton *)propertyWindow;
+ if (name == "value")
+ return new wxProperty("value", checkBox->GetValue(), "bool");
+ else
+ return wxItemPropertyInfo::GetProperty(name);
+}
+
+bool wxRadioButtonPropertyInfo::SetProperty(wxString& name, wxProperty *property)
+{
+ wxRadioButton *checkBox = (wxRadioButton *)propertyWindow;
+ if (name == "value")
+ {
+ checkBox->SetValue((bool)property->GetValue().BoolValue());
+ return TRUE;
+ }
+ else
+ return wxItemPropertyInfo::SetProperty(name, property);
+}
+
+void wxRadioButtonPropertyInfo::GetPropertyNames(wxStringList& names)
+{
+ names.Add("label");
+ names.Add("value");
+ wxItemPropertyInfo::GetPropertyNames(names);
+}
+
+bool wxRadioButtonPropertyInfo::InstantiateResource(wxItemResource *resource)
+{
+ wxRadioButton *cbox = (wxRadioButton *)propertyWindow;
+ resource->SetValue1(cbox->GetValue());
+ return wxItemPropertyInfo::InstantiateResource(resource);
+}
+
/*
* Slider item
*/
else if (val == "wxTELETYPE") return wxTELETYPE;
else return wxSWISS;
}
+
+///
+/// Resource symbol validator
+///
+IMPLEMENT_DYNAMIC_CLASS(wxResourceSymbolValidator, wxPropertyListValidator)
+
+wxResourceSymbolValidator::wxResourceSymbolValidator(long flags):
+ wxPropertyListValidator(flags)
+{
+}
+
+wxResourceSymbolValidator::~wxResourceSymbolValidator(void)
+{
+}
+
+bool wxResourceSymbolValidator::OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow)
+{
+ return TRUE;
+}
+
+// Called when TICK is pressed or focus is lost or view wants to update
+// the property list.
+// Does the transferance from the property editing area to the property itself
+bool wxResourceSymbolValidator::OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow)
+{
+ if (!view->GetValueText())
+ return FALSE;
+ wxString value(view->GetValueText()->GetValue());
+ property->GetValue() = value ;
+ return TRUE;
+}
+
+// Called when TICK is pressed or focus is lost or view wants to update
+// the property list.
+// Does the transferance from the property editing area to the property itself
+bool wxResourceSymbolValidator::OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow)
+{
+ if (!view->GetValueText())
+ return FALSE;
+ wxString str(property->GetValue().GetStringRepresentation());
+ view->GetValueText()->SetValue(str);
+ return TRUE;
+}
+
+// Called when the property is double clicked. Extra functionality can be provided,
+// cycling through possible values.
+bool wxResourceSymbolValidator::OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow)
+{
+ if (!view->GetValueText())
+ return FALSE;
+ OnEdit(property, view, parentWindow);
+ return TRUE;
+}
+
+bool wxResourceSymbolValidator::OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow)
+{
+ if (view->GetConfirmButton())
+ view->GetConfirmButton()->Enable(TRUE);
+ if (view->GetCancelButton())
+ view->GetCancelButton()->Enable(TRUE);
+ if (view->GetEditButton())
+ view->GetEditButton()->Enable(TRUE);
+ if (view->GetValueText())
+ view->GetValueText()->Enable((GetFlags() & wxPROP_ALLOW_TEXT_EDITING) == wxPROP_ALLOW_TEXT_EDITING);
+ return TRUE;
+}
+
+void wxResourceSymbolValidator::OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow)
+{
+ if (!view->GetValueText())
+ return;
+
+ wxResourceSymbolDialog* dialog = new wxResourceSymbolDialog(parentWindow, -1, "Edit Symbol");
+
+ dialog->SetSymbol(property->GetValue().StringValue());
+
+ // TODO: split name/id pair e.g. "IDC_TEXT=123" or get from symbol table - which?
+ dialog->SetId(1234);
+
+ dialog->Init();
+
+ if (dialog->ShowModal())
+ {
+ wxString symbolName(dialog->GetSymbol());
+ long id = dialog->GetId();
+ dialog->Destroy();
+
+ // TODO: set id somewhere
+ property->GetValue() = wxString(symbolName);
+
+ view->DisplayProperty(property);
+ view->UpdatePropertyDisplayInList(property);
+ view->OnPropertyChanged(property);
+ }
+
+#if 0
+ char *s = wxFileSelector(
+ filenameMessage.GetData(),
+ wxPathOnly(property->GetValue().StringValue()),
+ wxFileNameFromPath(property->GetValue().StringValue()),
+ NULL,
+ filenameWildCard.GetData(),
+ 0,
+ parentWindow);
+ if (s)
+ {
+ property->GetValue() = wxString(s);
+ view->DisplayProperty(property);
+ view->UpdatePropertyDisplayInList(property);
+ view->OnPropertyChanged(property);
+ }
+#endif
+}
+
+BEGIN_EVENT_TABLE(wxResourceSymbolDialog, wxDialog)
+ EVT_BUTTON(wxID_OK, wxResourceSymbolDialog::OnOK)
+END_EVENT_TABLE()
+
+wxResourceSymbolDialog::wxResourceSymbolDialog(wxWindow* parent, const wxWindowID id, const wxString& title, const wxPoint& pos,
+ const wxSize& size, long style):
+ wxDialog(parent, id, title, pos, size, style)
+{
+ int x = 5;
+ int y = 5;
+
+ (void) new wxStaticText(this, -1, "Name: ", wxPoint(x, y));
+
+ x += 80;
+
+ m_nameCtrl = new wxComboBox(this, ID_SYMBOLNAME_COMBOBOX, "",
+ wxPoint(x, y), wxSize(200, -1), 0, NULL, wxCB_DROPDOWN);
+
+ y += 30;
+ x = 5;
+
+ (void) new wxStaticText(this, -1, "Id: ", wxPoint(x, y));
+
+ x += 80;
+
+ m_idCtrl = new wxTextCtrl(this, ID_SYMBOLID_TEXTCTRL, "",
+ wxPoint(x, y), wxSize(200, -1));
+
+ y += 30;
+ x = 5;
+ (void) new wxButton(this, wxID_OK, "OK", wxPoint(x, y), wxSize(90, -1));
+
+ x += 120;
+ (void) new wxButton(this, wxID_CANCEL, "Cancel", wxPoint(x, y), wxSize(90, -1));
+
+ Fit();
+ Centre();
+}
+
+void wxResourceSymbolDialog::Init()
+{
+ wxString defaultId;
+ defaultId.Printf("%ld", m_symbolId);
+
+ m_nameCtrl->SetValue(m_symbolName);
+ m_idCtrl->SetValue(defaultId);
+}
+
+void wxResourceSymbolDialog::OnOK(wxCommandEvent& event)
+{
+ if (CheckValues())
+ {
+ wxDialog::OnOK(event);
+ }
+}
+
+bool wxResourceSymbolDialog::CheckValues()
+{
+ return TRUE;
+}
+
bool InstantiateResource(wxItemResource *resource);
};
+// For radiobutton items
+class wxRadioButtonPropertyInfo: public wxItemPropertyInfo
+{
+ protected:
+ public:
+ wxRadioButtonPropertyInfo(wxWindow *win, wxItemResource *res = NULL):
+ wxItemPropertyInfo(win, res) {}
+ ~wxRadioButtonPropertyInfo(void) {}
+ wxProperty *GetProperty(wxString& name);
+ bool SetProperty(wxString& name, wxProperty *property);
+ void GetPropertyNames(wxStringList& names);
+ bool InstantiateResource(wxItemResource *resource);
+};
+
// For gauge items
class wxGaugePropertyInfo: public wxItemPropertyInfo
{
int wxStringToFontStyle(wxString& val);
int wxStringToFontFamily(wxString& val);
-#endif
+/*
+ * A validator to allow editing symbol/id pairs
+ */
+
+class wxResourceSymbolValidator: public wxPropertyListValidator
+{
+ DECLARE_DYNAMIC_CLASS(wxResourceSymbolValidator)
+ protected:
+ public:
+ wxResourceSymbolValidator(long flags = 0);
+
+ ~wxResourceSymbolValidator(void);
+
+ // Called when TICK is pressed or focus is lost.
+ // Return FALSE if value didn't check out; signal to restore old value.
+ bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+
+ // Called when TICK is pressed or focus is lost or view wants to update
+ // the property list.
+ // Does the transferance from the property editing area to the property itself
+ bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+ bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+ bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+
+ bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+
+ // Called when the edit (...) button is pressed.
+ void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+};
+
+/*
+ * A dialog for editing symbol/id pairs
+ */
+
+class wxResourceSymbolDialog: public wxDialog
+{
+public:
+ wxResourceSymbolDialog(wxWindow* parent, const wxWindowID id, const wxString& title,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE);
+
+ void Init();
+
+ inline void SetSymbol(const wxString& symbol) { m_symbolName = symbol; }
+ inline void SetId(long id) { m_symbolId = id; }
+
+ inline wxString GetSymbol() const { return m_symbolName; }
+ inline long GetId() const { return m_symbolId; }
+
+ bool CheckValues();
+ void OnOK(wxCommandEvent& event);
+
+protected:
+ wxString m_symbolName;
+ long m_symbolId;
+ wxComboBox* m_nameCtrl;
+ wxTextCtrl* m_idCtrl;
+
+DECLARE_EVENT_TABLE()
+};
+
+#define ID_SYMBOLNAME_COMBOBOX 100
+#define ID_SYMBOLID_TEXTCTRL 101
+
+#endif
+ // _WINPROP_H_