Dialog Editor edits
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@366 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -34,6 +34,8 @@ MyApp::MyApp(void)
|
|||||||
|
|
||||||
wxResourceManager *theResourceManager = NULL;
|
wxResourceManager *theResourceManager = NULL;
|
||||||
|
|
||||||
|
#include "symbtabl.h"
|
||||||
|
|
||||||
bool MyApp::OnInit(void)
|
bool MyApp::OnInit(void)
|
||||||
{
|
{
|
||||||
theResourceManager = new wxResourceManager;
|
theResourceManager = new wxResourceManager;
|
||||||
|
@@ -37,7 +37,6 @@
|
|||||||
|
|
||||||
#include "reseditr.h"
|
#include "reseditr.h"
|
||||||
#include "winprop.h"
|
#include "winprop.h"
|
||||||
#include "editrpal.h"
|
|
||||||
#include "dlghndlr.h"
|
#include "dlghndlr.h"
|
||||||
#include "edlist.h"
|
#include "edlist.h"
|
||||||
|
|
||||||
@@ -176,6 +175,9 @@ void wxResourceEditorDialogHandler::OnLeftClick(int x, int y, int keys)
|
|||||||
case RESED_RADIOBOX:
|
case RESED_RADIOBOX:
|
||||||
resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxRadioBox", x, y);
|
resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxRadioBox", x, y);
|
||||||
break;
|
break;
|
||||||
|
case RESED_RADIOBUTTON:
|
||||||
|
resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxRadioButton", x, y);
|
||||||
|
break;
|
||||||
case RESED_LISTBOX:
|
case RESED_LISTBOX:
|
||||||
resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxListBox", x, y);
|
resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxListBox", x, y);
|
||||||
break;
|
break;
|
||||||
@@ -321,7 +323,8 @@ void wxResourceEditorDialogHandler::OnItemLeftClick(wxControl *item, int x, int
|
|||||||
wxResourceManager::GetCurrentResourceManager()->EditWindow(item);
|
wxResourceManager::GetCurrentResourceManager()->EditWindow(item);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
// If this is a wxStaticBox and the pointer isn't an arrow, chances
|
// 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.
|
// are that we really meant to place an item on the panel.
|
||||||
// Fake this event.
|
// Fake this event.
|
||||||
@@ -330,6 +333,7 @@ void wxResourceEditorDialogHandler::OnItemLeftClick(wxControl *item, int x, int
|
|||||||
OnLeftClick(x, y, keys);
|
OnLeftClick(x, y, keys);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
wxResourceEditorControlHandler *childHandler = (wxResourceEditorControlHandler *)item->GetEventHandler();
|
wxResourceEditorControlHandler *childHandler = (wxResourceEditorControlHandler *)item->GetEventHandler();
|
||||||
|
|
||||||
|
@@ -1,266 +0,0 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// 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;
|
|
||||||
}
|
|
||||||
|
|
@@ -1,71 +0,0 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// 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
|
|
@@ -38,7 +38,7 @@ DEBUG_FLAGS =
|
|||||||
!endif
|
!endif
|
||||||
CPPFLAGS=$(DEBUG_FLAGS) $(OPT) @$(CFG) @$(INCFILE)
|
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
|
$(TARGET).exe: wxprop $(INCFILE) $(OBJECTS) $(TARGET).def $(TARGET).res
|
||||||
tlink32 $(LINKFLAGS) @&&!
|
tlink32 $(LINKFLAGS) @&&!
|
||||||
|
@@ -14,7 +14,7 @@ WXDIR = ../../..
|
|||||||
# this central makefile.
|
# this central makefile.
|
||||||
include $(WXDIR)/src/makeg95.env
|
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)/dlghndlr.$(OBJSUFF) $(OBJDIR)/reswrite.$(OBJSUFF) $(OBJDIR)/winprop.$(OBJSUFF)\
|
||||||
$(OBJDIR)/edlist.$(OBJSUFF) $(OBJDIR)/edtree.$(OBJSUFF)\
|
$(OBJDIR)/edlist.$(OBJSUFF) $(OBJDIR)/edtree.$(OBJSUFF)\
|
||||||
$(OBJDIR)/dialoged_resources.$(OBJSUFF)
|
$(OBJDIR)/dialoged_resources.$(OBJSUFF)
|
||||||
@@ -40,9 +40,6 @@ dialoged$(GUISUFFIX)$(EXESUFF): $(OBJECTS) $(WXLIB)
|
|||||||
$(OBJDIR)/dialoged.$(OBJSUFF): dialoged.$(SRCSUFF)
|
$(OBJDIR)/dialoged.$(OBJSUFF): dialoged.$(SRCSUFF)
|
||||||
$(CC) -c $(CPPFLAGS) -o $@ 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)
|
$(OBJDIR)/winprop.$(OBJSUFF): winprop.h reseditr.h editrpal.h winprop.$(SRCSUFF)
|
||||||
$(CC) -c $(CPPFLAGS) -o $@ winprop.$(SRCSUFF)
|
$(CC) -c $(CPPFLAGS) -o $@ winprop.$(SRCSUFF)
|
||||||
|
|
||||||
|
@@ -25,7 +25,8 @@ LOCALDOCDIR=$(WXDIR)\utils\dialoged\docs
|
|||||||
|
|
||||||
PROGRAM=dialoged
|
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
|
all: wxprop dialoged.exe
|
||||||
|
|
||||||
@@ -47,32 +48,27 @@ $(DUMMYOBJ) $(OBJECTS) $(PROGRAM).res
|
|||||||
$(LIBS)
|
$(LIBS)
|
||||||
<<
|
<<
|
||||||
|
|
||||||
dialoged.obj: winprop.h reseditr.h editrpal.h dialoged.$(SRCSUFF) $(DUMMYOBJ)
|
dialoged.obj: winprop.h reseditr.h dialoged.$(SRCSUFF) $(DUMMYOBJ)
|
||||||
$(cc) @<<
|
$(cc) @<<
|
||||||
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
|
$(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) @<<
|
$(cc) @<<
|
||||||
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
|
$(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) @<<
|
$(cc) @<<
|
||||||
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
|
$(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) @<<
|
$(cc) @<<
|
||||||
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
|
$(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)
|
|
||||||
$(cc) @<<
|
$(cc) @<<
|
||||||
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
|
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
|
||||||
<<
|
<<
|
||||||
@@ -82,7 +78,12 @@ edlist.obj: winprop.h reseditr.h edlist.h edlist.$(SRCSUFF) $(DUMMYOBJ)
|
|||||||
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
|
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
|
||||||
<<
|
<<
|
||||||
|
|
||||||
dlghndlr.obj: winprop.h reseditr.h editrpal.h dlghndlr.$(SRCSUFF) $(DUMMYOBJ)
|
dlghndlr.obj: winprop.h reseditr.h dlghndlr.$(SRCSUFF) $(DUMMYOBJ)
|
||||||
|
$(cc) @<<
|
||||||
|
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
|
||||||
|
<<
|
||||||
|
|
||||||
|
symbtabl.obj: symbtabl.h symbtabl.$(SRCSUFF) $(DUMMYOBJ)
|
||||||
$(cc) @<<
|
$(cc) @<<
|
||||||
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
|
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF)
|
||||||
<<
|
<<
|
||||||
|
@@ -55,7 +55,6 @@
|
|||||||
|
|
||||||
#include "reseditr.h"
|
#include "reseditr.h"
|
||||||
#include "winprop.h"
|
#include "winprop.h"
|
||||||
#include "editrpal.h"
|
|
||||||
#include "dlghndlr.h"
|
#include "dlghndlr.h"
|
||||||
#include "edtree.h"
|
#include "edtree.h"
|
||||||
#include "edlist.h"
|
#include "edlist.h"
|
||||||
@@ -93,10 +92,10 @@ wxResourceManager::wxResourceManager():
|
|||||||
m_popupMenu = NULL;
|
m_popupMenu = NULL;
|
||||||
m_editorResourceTree = NULL;
|
m_editorResourceTree = NULL;
|
||||||
m_editorControlList = NULL;
|
m_editorControlList = NULL;
|
||||||
m_editorPalette = NULL;
|
|
||||||
m_nameCounter = 1;
|
m_nameCounter = 1;
|
||||||
m_modified = FALSE;
|
m_modified = FALSE;
|
||||||
m_currentFilename = "";
|
m_currentFilename = "";
|
||||||
|
m_symbolFilename = "";
|
||||||
m_editorToolBar = NULL;
|
m_editorToolBar = NULL;
|
||||||
|
|
||||||
// Default window positions
|
// Default window positions
|
||||||
@@ -228,7 +227,6 @@ bool wxResourceManager::ShowResourceEditor(bool show, wxWindow *parent, const ch
|
|||||||
m_editorFrame->SetMenuBar(menuBar);
|
m_editorFrame->SetMenuBar(menuBar);
|
||||||
|
|
||||||
m_editorToolBar = (EditorToolBar *)OnCreateToolBar(m_editorFrame);
|
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_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),
|
m_editorResourceTree = new wxResourceEditorProjectTree(m_editorFrame, IDC_TREECTRL, wxPoint(0, 0), wxSize(-1, -1),
|
||||||
wxTR_HAS_BUTTONS);
|
wxTR_HAS_BUTTONS);
|
||||||
@@ -245,17 +243,7 @@ bool wxResourceManager::ShowResourceEditor(bool show, wxWindow *parent, const ch
|
|||||||
c->width.Unconstrained();
|
c->width.Unconstrained();
|
||||||
c->height.Absolute(28);
|
c->height.Absolute(28);
|
||||||
m_editorToolBar->SetConstraints(c);
|
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
|
// Constraints for listbox
|
||||||
c = new wxLayoutConstraints;
|
c = new wxLayoutConstraints;
|
||||||
c->left.SameAs (m_editorFrame, wxLeft, 0);
|
c->left.SameAs (m_editorFrame, wxLeft, 0);
|
||||||
@@ -397,6 +385,58 @@ bool wxResourceManager::New(bool loadFromFile, const wxString& filename)
|
|||||||
SetFrameTitle(m_currentFilename);
|
SetFrameTitle(m_currentFilename);
|
||||||
|
|
||||||
UpdateResourceList();
|
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
|
else
|
||||||
{
|
{
|
||||||
@@ -425,6 +465,7 @@ bool wxResourceManager::Clear(bool deleteWindows, bool force)
|
|||||||
ClearCurrentDialog();
|
ClearCurrentDialog();
|
||||||
DisassociateWindows();
|
DisassociateWindows();
|
||||||
|
|
||||||
|
m_symbolTable.Clear();
|
||||||
m_resourceTable.ClearTable();
|
m_resourceTable.ClearTable();
|
||||||
UpdateResourceList();
|
UpdateResourceList();
|
||||||
|
|
||||||
@@ -545,10 +586,18 @@ bool wxResourceManager::SaveInfoAndDeleteHandler(wxWindow* win)
|
|||||||
// variable.
|
// variable.
|
||||||
bool wxResourceManager::DeleteWindow(wxWindow* win)
|
bool wxResourceManager::DeleteWindow(wxWindow* win)
|
||||||
{
|
{
|
||||||
|
bool clearDisplay = FALSE;
|
||||||
if (m_editorPanel->m_childWindow == win)
|
if (m_editorPanel->m_childWindow == win)
|
||||||
|
{
|
||||||
m_editorPanel->m_childWindow = NULL;
|
m_editorPanel->m_childWindow = NULL;
|
||||||
|
clearDisplay = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
win->Destroy();
|
win->Destroy();
|
||||||
|
|
||||||
|
if (clearDisplay)
|
||||||
|
m_editorPanel->Clear();
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -815,7 +864,7 @@ void wxResourceManager::AddItemsRecursively(long parent, wxItemResource *resourc
|
|||||||
bool wxResourceManager::EditSelectedResource()
|
bool wxResourceManager::EditSelectedResource()
|
||||||
{
|
{
|
||||||
int sel = m_editorResourceTree->GetSelection();
|
int sel = m_editorResourceTree->GetSelection();
|
||||||
if (sel > -1)
|
if (sel != 0)
|
||||||
{
|
{
|
||||||
wxItemResource *res = (wxItemResource *)m_editorResourceTree->GetItemData(sel);
|
wxItemResource *res = (wxItemResource *)m_editorResourceTree->GetItemData(sel);
|
||||||
return Edit(res);
|
return Edit(res);
|
||||||
@@ -972,6 +1021,14 @@ bool wxResourceManager::CreatePanelItem(wxItemResource *panelResource, wxPanel *
|
|||||||
wxHORIZONTAL, wxDefaultValidator, buf);
|
wxHORIZONTAL, wxDefaultValidator, buf);
|
||||||
res->SetStringValues(new wxStringList("One", "Two", NULL));
|
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")
|
else if (itemType == "wxChoice")
|
||||||
{
|
{
|
||||||
MakeUniqueName("choice", buf);
|
MakeUniqueName("choice", buf);
|
||||||
@@ -1042,6 +1099,33 @@ void wxResourceManager::ClearCurrentDialog()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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
|
// Find the first dialog or panel for which
|
||||||
// there is a selected panel item.
|
// there is a selected panel item.
|
||||||
wxWindow *wxResourceManager::FindParentOfSelection()
|
wxWindow *wxResourceManager::FindParentOfSelection()
|
||||||
@@ -1467,7 +1551,7 @@ wxWindow *wxResourceManager::RecreateWindowFromResource(wxWindow *win, wxWindowP
|
|||||||
bool wxResourceManager::DeleteSelection()
|
bool wxResourceManager::DeleteSelection()
|
||||||
{
|
{
|
||||||
int sel = m_editorResourceTree->GetSelection();
|
int sel = m_editorResourceTree->GetSelection();
|
||||||
if (sel > -1)
|
if (sel != 0)
|
||||||
{
|
{
|
||||||
wxItemResource *res = (wxItemResource *)m_editorResourceTree->GetItemData(sel);
|
wxItemResource *res = (wxItemResource *)m_editorResourceTree->GetItemData(sel);
|
||||||
wxWindow *win = FindWindowForResource(res);
|
wxWindow *win = FindWindowForResource(res);
|
||||||
@@ -1598,6 +1682,10 @@ wxWindowPropertyInfo *wxResourceManager::CreatePropertyInfoForWindow(wxWindow *w
|
|||||||
{
|
{
|
||||||
info = new wxRadioBoxPropertyInfo(win);
|
info = new wxRadioBoxPropertyInfo(win);
|
||||||
}
|
}
|
||||||
|
else if (win->IsKindOf(CLASSINFO(wxRadioButton)))
|
||||||
|
{
|
||||||
|
info = new wxRadioButtonPropertyInfo(win);
|
||||||
|
}
|
||||||
else if (win->IsKindOf(CLASSINFO(wxChoice)))
|
else if (win->IsKindOf(CLASSINFO(wxChoice)))
|
||||||
{
|
{
|
||||||
info = new wxChoicePropertyInfo(win);
|
info = new wxChoicePropertyInfo(win);
|
||||||
@@ -1729,7 +1817,7 @@ void wxResourceEditorFrame::OnAbout(wxCommandEvent& event)
|
|||||||
|
|
||||||
void wxResourceEditorFrame::OnTest(wxCommandEvent& event)
|
void wxResourceEditorFrame::OnTest(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
// TODO should show the current dialog
|
manager->TestCurrentDialog(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxResourceEditorFrame::OnContents(wxCommandEvent& event)
|
void wxResourceEditorFrame::OnContents(wxCommandEvent& event)
|
||||||
@@ -1773,7 +1861,6 @@ bool wxResourceEditorFrame::OnClose()
|
|||||||
}
|
}
|
||||||
manager->SetEditorFrame(NULL);
|
manager->SetEditorFrame(NULL);
|
||||||
manager->SetEditorToolBar(NULL);
|
manager->SetEditorToolBar(NULL);
|
||||||
manager->SetEditorPalette(NULL);
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@@ -26,6 +26,7 @@
|
|||||||
#include "wx/imaglist.h"
|
#include "wx/imaglist.h"
|
||||||
|
|
||||||
#include "proplist.h"
|
#include "proplist.h"
|
||||||
|
#include "symbtabl.h"
|
||||||
|
|
||||||
#define RESED_DELETE 1
|
#define RESED_DELETE 1
|
||||||
#define RESED_RECREATE 3
|
#define RESED_RECREATE 3
|
||||||
@@ -66,7 +67,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
class wxResourceEditorFrame;
|
class wxResourceEditorFrame;
|
||||||
class EditorToolPalette;
|
|
||||||
class EditorToolBar;
|
class EditorToolBar;
|
||||||
class wxWindowPropertyInfo;
|
class wxWindowPropertyInfo;
|
||||||
class wxResourceEditorProjectTree;
|
class wxResourceEditorProjectTree;
|
||||||
@@ -125,6 +125,7 @@ class wxResourceTableWithSaving: public wxResourceTable
|
|||||||
void GenerateTextStyleString(long windowStyle, char *buf);
|
void GenerateTextStyleString(long windowStyle, char *buf);
|
||||||
void GenerateButtonStyleString(long windowStyle, char *buf);
|
void GenerateButtonStyleString(long windowStyle, char *buf);
|
||||||
void GenerateCheckBoxStyleString(long windowStyle, char *buf);
|
void GenerateCheckBoxStyleString(long windowStyle, char *buf);
|
||||||
|
void GenerateRadioButtonStyleString(long windowStyle, char *buf);
|
||||||
void GenerateListBoxStyleString(long windowStyle, char *buf);
|
void GenerateListBoxStyleString(long windowStyle, char *buf);
|
||||||
void GenerateSliderStyleString(long windowStyle, char *buf);
|
void GenerateSliderStyleString(long windowStyle, char *buf);
|
||||||
void GenerateGroupBoxStyleString(long windowStyle, char *buf);
|
void GenerateGroupBoxStyleString(long windowStyle, char *buf);
|
||||||
@@ -180,7 +181,6 @@ public:
|
|||||||
virtual wxMenuBar *OnCreateEditorMenuBar(wxFrame *parent);
|
virtual wxMenuBar *OnCreateEditorMenuBar(wxFrame *parent);
|
||||||
virtual wxResourceEditorScrolledWindow *OnCreateEditorPanel(wxFrame *parent);
|
virtual wxResourceEditorScrolledWindow *OnCreateEditorPanel(wxFrame *parent);
|
||||||
virtual wxToolBarBase *OnCreateToolBar(wxFrame *parent);
|
virtual wxToolBarBase *OnCreateToolBar(wxFrame *parent);
|
||||||
virtual EditorToolPalette *OnCreatePalette(wxFrame *parent);
|
|
||||||
|
|
||||||
// Create a window information object for the give window
|
// Create a window information object for the give window
|
||||||
wxWindowPropertyInfo* CreatePropertyInfoForWindow(wxWindow *win);
|
wxWindowPropertyInfo* CreatePropertyInfoForWindow(wxWindow *win);
|
||||||
@@ -193,8 +193,8 @@ public:
|
|||||||
virtual bool Edit(wxItemResource *res);
|
virtual bool Edit(wxItemResource *res);
|
||||||
virtual bool CreateNewPanel();
|
virtual bool CreateNewPanel();
|
||||||
virtual bool CreatePanelItem(wxItemResource *panelResource, wxPanel *panel, char *itemType, int x = 10, int y = 10, bool isBitmap = FALSE);
|
virtual bool CreatePanelItem(wxItemResource *panelResource, wxPanel *panel, char *itemType, int x = 10, int y = 10, bool isBitmap = FALSE);
|
||||||
|
|
||||||
virtual bool DeleteSelection();
|
virtual bool DeleteSelection();
|
||||||
|
virtual bool TestCurrentDialog(wxWindow* parent);
|
||||||
|
|
||||||
// Saves the window info into the resource, and deletes the
|
// Saves the window info into the resource, and deletes the
|
||||||
// handler. Doesn't actually disassociate the window from
|
// handler. Doesn't actually disassociate the window from
|
||||||
@@ -253,11 +253,9 @@ public:
|
|||||||
// Accessors
|
// Accessors
|
||||||
inline void SetEditorFrame(wxFrame *fr) { m_editorFrame = fr; }
|
inline void SetEditorFrame(wxFrame *fr) { m_editorFrame = fr; }
|
||||||
inline void SetEditorToolBar(EditorToolBar *tb) { m_editorToolBar = tb; }
|
inline void SetEditorToolBar(EditorToolBar *tb) { m_editorToolBar = tb; }
|
||||||
inline void SetEditorPalette(EditorToolPalette *pal) { m_editorPalette = pal; }
|
|
||||||
inline wxFrame *GetEditorFrame() const { return m_editorFrame; }
|
inline wxFrame *GetEditorFrame() const { return m_editorFrame; }
|
||||||
inline wxResourceEditorProjectTree *GetEditorResourceTree() const { return m_editorResourceTree; }
|
inline wxResourceEditorProjectTree *GetEditorResourceTree() const { return m_editorResourceTree; }
|
||||||
inline wxResourceEditorControlList *GetEditorControlList() const { return m_editorControlList; }
|
inline wxResourceEditorControlList *GetEditorControlList() const { return m_editorControlList; }
|
||||||
inline EditorToolPalette *GetEditorPalette() const { return m_editorPalette; }
|
|
||||||
inline wxList& GetSelections() { return m_selections; }
|
inline wxList& GetSelections() { return m_selections; }
|
||||||
inline wxMenu *GetPopupMenu() const { return m_popupMenu; }
|
inline wxMenu *GetPopupMenu() const { return m_popupMenu; }
|
||||||
inline wxHelpController *GetHelpController() const { return m_helpController; }
|
inline wxHelpController *GetHelpController() const { return m_helpController; }
|
||||||
@@ -268,9 +266,12 @@ public:
|
|||||||
inline wxResourceTable& GetResourceTable() { return m_resourceTable; }
|
inline wxResourceTable& GetResourceTable() { return m_resourceTable; }
|
||||||
inline wxHashTable& GetResourceAssociations() { return m_resourceAssociations; }
|
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; }
|
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& GetPropertyWindowSize() { return m_propertyWindowSize; }
|
||||||
inline wxRect& GetResourceEditorWindowSize() { return m_resourceEditorWindowSize; }
|
inline wxRect& GetResourceEditorWindowSize() { return m_resourceEditorWindowSize; }
|
||||||
|
|
||||||
@@ -283,7 +284,6 @@ public:
|
|||||||
wxMenu* m_popupMenu;
|
wxMenu* m_popupMenu;
|
||||||
wxResourceEditorProjectTree* m_editorResourceTree;
|
wxResourceEditorProjectTree* m_editorResourceTree;
|
||||||
wxResourceEditorControlList* m_editorControlList;
|
wxResourceEditorControlList* m_editorControlList;
|
||||||
EditorToolPalette* m_editorPalette;
|
|
||||||
EditorToolBar* m_editorToolBar;
|
EditorToolBar* m_editorToolBar;
|
||||||
int m_nameCounter;
|
int m_nameCounter;
|
||||||
bool m_modified;
|
bool m_modified;
|
||||||
@@ -300,6 +300,11 @@ public:
|
|||||||
wxRect m_propertyWindowSize;
|
wxRect m_propertyWindowSize;
|
||||||
wxRect m_resourceEditorWindowSize;
|
wxRect m_resourceEditorWindowSize;
|
||||||
static wxResourceManager* sm_currentResourceManager;
|
static wxResourceManager* sm_currentResourceManager;
|
||||||
|
|
||||||
|
// Symbol table with identifiers for controls
|
||||||
|
wxResourceSymbolTable m_symbolTable;
|
||||||
|
// Filename for include file, e.g. resource.h
|
||||||
|
wxString m_symbolFilename;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@@ -221,6 +221,19 @@ bool wxResourceTableWithSaving::SaveResource(ostream& stream, wxItemResource *it
|
|||||||
OutputFont(stream, item->GetFont());
|
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")
|
else if (itemType == "wxStaticBox")
|
||||||
{
|
{
|
||||||
GenerateGroupBoxStyleString(item->GetStyle(), styleBuf);
|
GenerateGroupBoxStyleString(item->GetStyle(), styleBuf);
|
||||||
@@ -618,6 +631,15 @@ void wxResourceTableWithSaving::GenerateCheckBoxStyleString(long windowStyle, ch
|
|||||||
strcat(buf, "0");
|
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)
|
void wxResourceTableWithSaving::GenerateListBoxStyleString(long windowStyle, char *buf)
|
||||||
{
|
{
|
||||||
buf[0] = 0;
|
buf[0] = 0;
|
||||||
|
173
utils/dialoged/src/symbtabl.cpp
Normal file
173
utils/dialoged/src/symbtabl.cpp
Normal file
@@ -0,0 +1,173 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// 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);
|
||||||
|
}
|
||||||
|
|
45
utils/dialoged/src/symbtabl.h
Normal file
45
utils/dialoged/src/symbtabl.h
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// 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_
|
||||||
|
|
@@ -40,7 +40,6 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "reseditr.h"
|
#include "reseditr.h"
|
||||||
#include "editrpal.h"
|
|
||||||
#include "winprop.h"
|
#include "winprop.h"
|
||||||
|
|
||||||
// Causes immediate feedback.
|
// Causes immediate feedback.
|
||||||
@@ -144,6 +143,7 @@ bool wxPropertyInfo::Edit(wxWindow *parent, const wxString& title)
|
|||||||
propDialog->m_registry.RegisterValidator((wxString)"bool", new wxBoolListValidator);
|
propDialog->m_registry.RegisterValidator((wxString)"bool", new wxBoolListValidator);
|
||||||
propDialog->m_registry.RegisterValidator((wxString)"filename", new wxFilenameListValidator);
|
propDialog->m_registry.RegisterValidator((wxString)"filename", new wxFilenameListValidator);
|
||||||
propDialog->m_registry.RegisterValidator((wxString)"stringlist", new wxListOfStringsListValidator);
|
propDialog->m_registry.RegisterValidator((wxString)"stringlist", new wxListOfStringsListValidator);
|
||||||
|
propDialog->m_registry.RegisterValidator((wxString)"window_id", new wxResourceSymbolValidator);
|
||||||
|
|
||||||
propDialog->m_propInfo = this;
|
propDialog->m_propInfo = this;
|
||||||
propDialog->m_propSheet = propSheet;
|
propDialog->m_propSheet = propSheet;
|
||||||
@@ -290,6 +290,11 @@ wxProperty *wxWindowPropertyInfo::GetProperty(wxString& name)
|
|||||||
propertyWindow->GetSize(&width, &height);
|
propertyWindow->GetSize(&width, &height);
|
||||||
return new wxProperty("height", (long)height, "integer");
|
return new wxProperty("height", (long)height, "integer");
|
||||||
}
|
}
|
||||||
|
else if (name == "id")
|
||||||
|
{
|
||||||
|
wxString symbolName("TODO");
|
||||||
|
return new wxProperty("id", symbolName, "window_id");
|
||||||
|
}
|
||||||
else
|
else
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@@ -382,12 +387,18 @@ bool wxWindowPropertyInfo::SetProperty(wxString& name, wxProperty *property)
|
|||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
else if (name == "id")
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxWindowPropertyInfo::GetPropertyNames(wxStringList& names)
|
void wxWindowPropertyInfo::GetPropertyNames(wxStringList& names)
|
||||||
{
|
{
|
||||||
|
names.Add("id");
|
||||||
names.Add("name");
|
names.Add("name");
|
||||||
names.Add("x");
|
names.Add("x");
|
||||||
names.Add("y");
|
names.Add("y");
|
||||||
@@ -1147,6 +1158,45 @@ bool wxCheckBoxPropertyInfo::InstantiateResource(wxItemResource *resource)
|
|||||||
return wxItemPropertyInfo::InstantiateResource(resource);
|
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
|
* Slider item
|
||||||
*/
|
*/
|
||||||
@@ -1654,3 +1704,178 @@ int wxStringToFontFamily(wxString& val)
|
|||||||
else if (val == "wxTELETYPE") return wxTELETYPE;
|
else if (val == "wxTELETYPE") return wxTELETYPE;
|
||||||
else return wxSWISS;
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -253,6 +253,20 @@ class wxCheckBoxPropertyInfo: public wxItemPropertyInfo
|
|||||||
bool InstantiateResource(wxItemResource *resource);
|
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
|
// For gauge items
|
||||||
class wxGaugePropertyInfo: public wxItemPropertyInfo
|
class wxGaugePropertyInfo: public wxItemPropertyInfo
|
||||||
{
|
{
|
||||||
@@ -313,5 +327,70 @@ int wxStringToFontWeight(wxString& val);
|
|||||||
int wxStringToFontStyle(wxString& val);
|
int wxStringToFontStyle(wxString& val);
|
||||||
int wxStringToFontFamily(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_
|
||||||
|
Reference in New Issue
Block a user