Added Prepend() and Remove() methods to wxSizer,

Corrected a stupid bug in it,
  Freshed up wxPropertyXXX to make use of the icons
  in the dialogs.
  Made wxBmpButton inherit from wxButton. Grumble.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling 1999-08-16 20:17:48 +00:00
parent 0b129e1a85
commit 42b4e99e9a
17 changed files with 263 additions and 279 deletions

View File

@ -54,6 +54,12 @@ won't ever work, but there is now a new makefile system
that works without libtool and automake, using only
configure to create what is needed.
In order to create configure, you need to have the
GNU autoconf package (version 2.13 or 2.14) installed
on your system and type run "autoconf" in the base
directory (or run the autogen.sh script in the same
directory, which just calls autoconf).
Set WXWIN environment variable to the base directory such
as ~/wxWindows (this is actually not really needed).

View File

@ -2717,6 +2717,7 @@ AC_OUTPUT([
samples/minimal/Makefile
samples/notebook/Makefile
samples/printing/Makefile
samples/proplist/Makefile
samples/sashtest/Makefile
samples/scroll/Makefile
samples/splitter/Makefile

View File

@ -23,6 +23,7 @@
#include "wx/list.h"
#include "wx/control.h"
#include "wx/bitmap.h"
#include "wx/button.h"
//-----------------------------------------------------------------------------
// classes
@ -40,7 +41,7 @@ extern const wxChar *wxButtonNameStr;
// wxBitmapButton
//-----------------------------------------------------------------------------
class wxBitmapButton: public wxControl
class wxBitmapButton: public wxButton
{
DECLARE_DYNAMIC_CLASS(wxBitmapButton)
@ -59,7 +60,7 @@ public:
const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxButtonNameStr);
void SetDefault();
virtual void SetDefault();
void SetLabel( const wxString &label );
wxString GetLabel() const;

View File

@ -57,7 +57,7 @@ class wxButton: public wxControl
const wxSize& size = wxDefaultSize, long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxButtonNameStr);
void SetDefault();
virtual void SetDefault();
void SetLabel( const wxString &label );
bool Enable( bool enable );

View File

@ -23,6 +23,7 @@
#include "wx/list.h"
#include "wx/control.h"
#include "wx/bitmap.h"
#include "wx/button.h"
//-----------------------------------------------------------------------------
// classes
@ -40,7 +41,7 @@ extern const wxChar *wxButtonNameStr;
// wxBitmapButton
//-----------------------------------------------------------------------------
class wxBitmapButton: public wxControl
class wxBitmapButton: public wxButton
{
DECLARE_DYNAMIC_CLASS(wxBitmapButton)
@ -59,7 +60,7 @@ public:
const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxButtonNameStr);
void SetDefault();
virtual void SetDefault();
void SetLabel( const wxString &label );
wxString GetLabel() const;

View File

@ -57,7 +57,7 @@ class wxButton: public wxControl
const wxSize& size = wxDefaultSize, long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxButtonNameStr);
void SetDefault();
virtual void SetDefault();
void SetLabel( const wxString &label );
bool Enable( bool enable );

View File

@ -26,6 +26,7 @@
#include "wx/textctrl.h"
#include "wx/gdicmn.h"
#include "wx/layout.h"
#include "wx/sizer.h"
class wxWindow;
class wxProperty;

View File

@ -172,12 +172,10 @@ public:
wxButton* m_confirmButton; // A tick, as in VB
wxButton* m_cancelButton; // A cross, as in VB
wxButton* m_editButton; // Invokes the custom validator, if any
wxSizer* m_middleSizer;
bool m_detailedEditing; // E.g. using listbox for choices
static wxBitmap* sm_tickBitmap;
static wxBitmap* sm_crossBitmap;
wxPanel* m_propertyWindow; // Panel that the controls will appear on
wxWindow* m_managedWindow; // Frame or dialog

View File

@ -92,6 +92,14 @@ public:
virtual void Add( wxSizer *sizer, int option = 0, int flag = 0, int border = 0 );
virtual void Add( int width, int height, int option = 0, int flag = 0, int border = 0 );
virtual void Prepend( wxWindow *window, int option = 0, int flag = 0, int border = 0 );
virtual void Prepend( wxSizer *sizer, int option = 0, int flag = 0, int border = 0 );
virtual void Prepend( int width, int height, int option = 0, int flag = 0, int border = 0 );
virtual bool Remove( wxWindow *window );
virtual bool Remove( wxSizer *sizer );
virtual bool Remove( int pos );
void SetDimension( int x, int y, int width, int height );
wxSize GetSize()

View File

@ -1,2 +1 @@
Makefile.in

View File

@ -197,6 +197,69 @@ void wxSizer::Add( int width, int height, int option, int flag, int border )
m_children.Append( new wxSizerItem( width, height, option, flag, border ) );
}
void wxSizer::Prepend( wxWindow *window, int option, int flag, int border )
{
m_children.Insert( new wxSizerItem( window, option, flag, border ) );
}
void wxSizer::Prepend( wxSizer *sizer, int option, int flag, int border )
{
m_children.Insert( new wxSizerItem( sizer, option, flag, border ) );
}
void wxSizer::Prepend( int width, int height, int option, int flag, int border )
{
m_children.Insert( new wxSizerItem( width, height, option, flag, border ) );
}
bool wxSizer::Remove( wxWindow *window )
{
wxASSERT( window );
wxNode *node = m_children.First();
while (node)
{
wxSizerItem *item = (wxSizerItem*)node->Data();
if (item->GetWindow() == window)
{
m_children.DeleteNode( node );
return TRUE;
}
node = node->Next();
}
return FALSE;
}
bool wxSizer::Remove( wxSizer *sizer )
{
wxASSERT( sizer );
wxNode *node = m_children.First();
while (node)
{
wxSizerItem *item = (wxSizerItem*)node->Data();
if (item->GetSizer() == sizer)
{
m_children.DeleteNode( node );
return TRUE;
}
node = node->Next();
}
return FALSE;
}
bool wxSizer::Remove( int pos )
{
wxNode *node = m_children.Nth( pos );
if (!node) return FALSE;
m_children.DeleteNode( node );
return TRUE;
}
void wxSizer::Fit( wxWindow *window )
{
window->SetSize( GetMinWindowSize( window ) );
@ -204,7 +267,7 @@ void wxSizer::Fit( wxWindow *window )
void wxSizer::Layout()
{
m_size = CalcMin();
CalcMin();
RecalcSizes();
}
@ -229,6 +292,7 @@ void wxSizer::SetDimension( int x, int y, int width, int height )
m_position.y = y;
m_size.x = width;
m_size.y = height;
CalcMin();
RecalcSizes();
}
@ -244,10 +308,7 @@ wxBoxSizer::wxBoxSizer( int orient )
void wxBoxSizer::RecalcSizes()
{
if (m_children.GetCount() == 0)
{
SetDimension( m_position.x, m_position.y, 2, 2 );
return;
}
int delta = 0;
int extra = 0;

View File

@ -21,9 +21,21 @@
#endif
#ifndef WX_PRECOMP
#include "wx/wx.h"
#include "wx/window.h"
#include "wx/font.h"
#include "wx/button.h"
#include "wx/bmpbuttn.h"
#include "wx/textctrl.h"
#include "wx/listbox.h"
#include "wx/settings.h"
#include "wx/msgdlg.h"
#include "wx/filedlg.h"
#endif
#include "wx/sizer.h"
#include "wx/module.h"
#include "wx/intl.h"
#include "wx/colordlg.h"
#include "wx/proplist.h"
@ -32,6 +44,19 @@
#include <math.h>
#include <string.h>
#ifndef __WXMSW__
#include "wx/generic/cross.xpm"
#include "wx/generic/tick.xpm"
#endif
/*
* global data, urgh.
*/
static wxBitmap* gs_tickBitmap = (wxBitmap*) NULL;
static wxBitmap* gs_crossBitmap = (wxBitmap*) NULL;
/*
* Property text edit control
@ -60,6 +85,8 @@ void wxPropertyTextEdit::OnKillFocus(void)
* Property list view
*/
bool wxPropertyListView::sm_dialogCancelled = FALSE;
IMPLEMENT_DYNAMIC_CLASS(wxPropertyListView, wxPropertyView)
BEGIN_EVENT_TABLE(wxPropertyListView, wxPropertyView)
@ -76,10 +103,6 @@ BEGIN_EVENT_TABLE(wxPropertyListView, wxPropertyView)
EVT_LISTBOX(wxID_PROP_VALUE_SELECT, wxPropertyListView::OnValueListSelect)
END_EVENT_TABLE()
bool wxPropertyListView::sm_dialogCancelled = FALSE;
wxBitmap *wxPropertyListView::sm_tickBitmap = NULL;
wxBitmap *wxPropertyListView::sm_crossBitmap = NULL;
wxPropertyListView::wxPropertyListView(wxPanel *propPanel, long flags):wxPropertyView(flags)
{
m_propertyScrollingList = NULL;
@ -100,12 +123,6 @@ wxPropertyListView::wxPropertyListView(wxPanel *propPanel, long flags):wxPropert
wxPropertyListView::~wxPropertyListView(void)
{
/*
if (m_tickBitmap)
delete m_tickBitmap;
if (m_crossBitmap)
delete m_crossBitmap;
*/
}
void wxPropertyListView::ShowView(wxPropertySheet *ps, wxPanel *panel)
@ -389,258 +406,122 @@ void wxPropertyListView::OnPropertySelect(wxCommandEvent& WXUNUSED(event))
}
}
bool wxPropertyListView::CreateControls(void)
bool wxPropertyListView::CreateControls()
{
wxPanel *panel = (wxPanel *)m_propertyWindow;
wxPanel *panel = (wxPanel *)m_propertyWindow;
int largeButtonWidth = 60;
int largeButtonHeight = 25;
wxSize largeButtonSize( 60, 25 );
wxSize smallButtonSize( 23, 23 );
int smallButtonWidth = 25;
int smallButtonHeight = 20;
if (m_valueText)
return TRUE;
// XView must be allowed to choose its own sized buttons
#ifdef __XVIEW__
largeButtonWidth = -1;
largeButtonHeight = -1;
if (!panel)
return FALSE;
smallButtonWidth = -1;
smallButtonHeight = -1;
#endif
if (m_valueText)
return TRUE;
if (!panel)
return FALSE;
wxWindow *leftMostWindow = panel;
/*
wxWindow *topMostWindow = panel;
wxWindow *rightMostWindow = panel;
*/
wxSystemSettings settings;
wxFont guiFont = settings.GetSystemFont(wxSYS_DEFAULT_GUI_FONT);
wxSystemSettings settings;
wxFont guiFont = settings.GetSystemFont(wxSYS_DEFAULT_GUI_FONT);
#ifdef __WXMSW__
wxFont *boringFont = wxTheFontList->FindOrCreateFont(guiFont.GetPointSize(), wxMODERN, wxNORMAL, wxNORMAL, FALSE, "Courier New");
wxFont *boringFont = wxTheFontList->FindOrCreateFont(guiFont.GetPointSize(), wxMODERN, wxNORMAL, wxNORMAL, FALSE, "Courier New");
#else
wxFont *boringFont = wxTheFontList->FindOrCreateFont(guiFont.GetPointSize(), wxTELETYPE, wxNORMAL, wxNORMAL);
wxFont *boringFont = wxTheFontList->FindOrCreateFont(guiFont.GetPointSize(), wxTELETYPE, wxNORMAL, wxNORMAL);
#endif
// May need to be changed in future to eliminate clashes with app.
// WHAT WAS THIS FOR?
// May need to be changed in future to eliminate clashes with app.
// WHAT WAS THIS FOR?
// panel->SetClientData((char *)this);
// These buttons are at the bottom of the window, but create them now
// so the constraints are evaluated in the correct order
if (m_buttonFlags & wxPROP_BUTTON_OK)
{
m_windowCloseButton = new wxButton(panel, wxID_OK, "OK",
wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight));
m_windowCloseButton->SetDefault();
m_windowCloseButton->SetFocus();
}
else if (m_buttonFlags & wxPROP_BUTTON_CLOSE)
{
m_windowCloseButton = new wxButton(panel, wxID_OK, "Close",
wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight));
}
if (m_buttonFlags & wxPROP_BUTTON_CANCEL)
{
m_windowCancelButton = new wxButton(panel, wxID_CANCEL, "Cancel",
wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight));
}
if (m_buttonFlags & wxPROP_BUTTON_HELP)
{
m_windowHelpButton = new wxButton(panel, wxID_HELP, "Help",
wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight));
}
wxBoxSizer *mainsizer = new wxBoxSizer( wxVERTICAL );
// top row with optional buttons and input line
if (m_windowCloseButton)
{
wxLayoutConstraints *c1 = new wxLayoutConstraints;
wxBoxSizer *topsizer = new wxBoxSizer( wxHORIZONTAL );
int buttonborder = 3;
c1->left.SameAs (panel, wxLeft, 2);
c1->bottom.SameAs (panel, wxBottom, 2);
c1->width.AsIs();
c1->height.AsIs();
m_windowCloseButton->SetConstraints(c1);
leftMostWindow = m_windowCloseButton;
}
if (m_windowCancelButton)
{
wxLayoutConstraints *c2 = new wxLayoutConstraints;
c2->right.SameAs (panel, wxRight, 2);
c2->bottom.SameAs (panel, wxBottom, 2);
c2->width.AsIs();
c2->height.AsIs();
m_windowCancelButton->SetConstraints(c2);
leftMostWindow = m_windowCancelButton;
}
if (m_windowHelpButton)
{
wxLayoutConstraints *c2 = new wxLayoutConstraints;
if (leftMostWindow == panel)
c2->left.SameAs (panel, wxLeft, 2);
else
c2->left.RightOf (leftMostWindow, 2);
c2->bottom.SameAs (panel, wxBottom, 2);
c2->width.AsIs();
c2->height.AsIs();
m_windowHelpButton->SetConstraints(c2);
leftMostWindow = m_windowHelpButton;
}
if (m_buttonFlags & wxPROP_BUTTON_CHECK_CROSS)
{
/*
if (!tickBitmap)
if (m_buttonFlags & wxPROP_BUTTON_CHECK_CROSS)
{
#ifdef __WXMSW__
tickBitmap = new wxBitmap("tick_bmp", wxBITMAP_TYPE_RESOURCE);
crossBitmap = new wxBitmap("cross_bmp", wxBITMAP_TYPE_RESOURCE);
if (!tickBitmap || !crossBitmap || !tickBitmap->Ok() || !crossBitmap->Ok())
{
if (tickBitmap)
delete tickBitmap;
if (crossBitmap)
delete crossBitmap;
tickBitmap = NULL;
crossBitmap = NULL;
}
#endif
}
*/
/*
if (tickBitmap && crossBitmap)
{
m_confirmButton = new wxBitmapButton(panel, wxID_PROP_CHECK, tickBitmap,
wxPoint(-1, -1), wxSize(smallButtonWidth-5, smallButtonHeight-5));
m_cancelButton = new wxBitmapButton(panel, wxID_PROP_CROSS, crossBitmap,
wxPoint(-1, -1), wxSize(smallButtonWidth-5, smallButtonHeight-5));
}
else
*/
{
m_confirmButton = new wxButton(panel, wxID_PROP_CHECK, ":-)",
wxPoint(-1, -1), wxSize(smallButtonWidth, smallButtonHeight));
m_cancelButton = new wxButton(panel, wxID_PROP_CROSS, "X",
wxPoint(-1, -1), wxSize(smallButtonWidth, smallButtonHeight));
if (gs_tickBitmap && gs_crossBitmap)
{
m_confirmButton = new wxBitmapButton(panel, wxID_PROP_CHECK, *gs_tickBitmap, wxPoint(-1, -1), smallButtonSize );
m_cancelButton = new wxBitmapButton(panel, wxID_PROP_CROSS, *gs_crossBitmap, wxPoint(-1, -1), smallButtonSize );
}
else
{
m_confirmButton = new wxButton(panel, wxID_PROP_CHECK, ":-)", wxPoint(-1, -1), smallButtonSize );
m_cancelButton = new wxButton(panel, wxID_PROP_CROSS, "X", wxPoint(-1, -1), smallButtonSize );
}
topsizer->Add( m_confirmButton, 0, wxLEFT|wxTOP|wxBOTTOM | wxEXPAND, buttonborder );
topsizer->Add( m_cancelButton, 0, wxLEFT|wxTOP|wxBOTTOM | wxEXPAND, buttonborder );
}
wxLayoutConstraints *c = new wxLayoutConstraints;
c->left.SameAs (panel, wxLeft, 2);
/*
if (windowCloseButton)
c->top.Below (m_windowCloseButton, 2);
else
*/
c->top.SameAs (panel, wxTop, 2);
m_valueText = new wxPropertyTextEdit(this, panel, wxID_PROP_TEXT, "",
wxPoint(-1, -1), wxSize(-1, smallButtonSize.y), wxPROCESS_ENTER);
m_valueText->Enable(FALSE);
topsizer->Add( m_valueText, 1, wxALL | wxEXPAND, buttonborder );
if (m_buttonFlags & wxPROP_PULLDOWN)
{
m_editButton = new wxButton(panel, wxID_PROP_EDIT, "...", wxPoint(-1, -1), smallButtonSize);
m_editButton->Enable(FALSE);
topsizer->Add( m_editButton, 0, wxRIGHT|wxTOP|wxBOTTOM | wxEXPAND, buttonborder );
}
c->width.AsIs();
c->height.AsIs();
mainsizer->Add( topsizer, 0, wxEXPAND );
m_cancelButton->SetConstraints(c);
// middle section with two list boxes
c = new wxLayoutConstraints;
c->left.RightOf (m_cancelButton, 2);
c->top.SameAs (m_cancelButton, wxTop, 0);
c->width.AsIs();
c->height.AsIs();
m_middleSizer = new wxBoxSizer( wxVERTICAL );
m_confirmButton->SetConstraints(c);
m_valueList = new wxListBox(panel, wxID_PROP_VALUE_SELECT, wxPoint(-1, -1), wxSize(-1, 60));
m_valueList->Show(FALSE);
m_cancelButton->Enable(FALSE);
m_confirmButton->Enable(FALSE);
}
m_propertyScrollingList = new wxListBox(panel, wxID_PROP_SELECT, wxPoint(-1, -1), wxSize(100, 100));
m_propertyScrollingList->SetFont(* boringFont);
m_middleSizer->Add( m_propertyScrollingList, 1, wxALL|wxEXPAND, buttonborder );
if (m_buttonFlags & wxPROP_PULLDOWN)
{
m_editButton = new wxButton(panel, wxID_PROP_EDIT, "...",
wxPoint(-1, -1), wxSize(smallButtonWidth, smallButtonHeight));
m_editButton->Enable(FALSE);
wxLayoutConstraints *c = new wxLayoutConstraints;
mainsizer->Add( m_middleSizer, 1, wxEXPAND );
/*
if (m_windowCloseButton)
c->top.Below (m_windowCloseButton, 2);
else
*/
c->top.SameAs (panel, wxTop, 2);
// bottom row with buttons
c->right.SameAs (panel, wxRight, 2);
c->width.AsIs();
c->height.AsIs();
m_editButton->SetConstraints(c);
}
if ((m_buttonFlags & wxPROP_BUTTON_OK) ||
(m_buttonFlags & wxPROP_BUTTON_CLOSE) ||
(m_buttonFlags & wxPROP_BUTTON_CANCEL) ||
(m_buttonFlags & wxPROP_BUTTON_HELP))
{
wxBoxSizer *bottomsizer = new wxBoxSizer( wxHORIZONTAL );
buttonborder = 5;
if (m_buttonFlags & wxPROP_BUTTON_OK)
{
m_windowCloseButton = new wxButton(panel, wxID_OK, _("OK"), wxPoint(-1, -1), largeButtonSize );
m_windowCloseButton->SetDefault();
m_windowCloseButton->SetFocus();
bottomsizer->Add( m_windowCloseButton, 0, wxLEFT|wxTOP|wxBOTTOM, buttonborder );
}
else if (m_buttonFlags & wxPROP_BUTTON_CLOSE)
{
m_windowCloseButton = new wxButton(panel, wxID_OK, _("Close"), wxPoint(-1, -1), largeButtonSize );
bottomsizer->Add( m_windowCloseButton, 0, wxALL, buttonborder );
}
if (m_buttonFlags & wxPROP_BUTTON_CANCEL)
{
m_windowCancelButton = new wxButton(panel, wxID_CANCEL, _("Cancel"), wxPoint(-1, -1), largeButtonSize );
bottomsizer->Add( m_windowCancelButton, 0, wxALL, buttonborder );
}
if (m_buttonFlags & wxPROP_BUTTON_HELP)
{
m_windowHelpButton = new wxButton(panel, wxID_HELP, _("Help"), wxPoint(-1, -1), largeButtonSize );
bottomsizer->Add( m_windowHelpButton, 0, wxALL, buttonborder );
}
mainsizer->Add( bottomsizer, 1, wxALIGN_RIGHT | wxEXPAND );
}
m_valueText = new wxPropertyTextEdit(this, panel, wxID_PROP_TEXT, "", wxPoint(-1, -1), wxSize(-1, -1), wxPROCESS_ENTER);
m_valueText->Enable(FALSE);
panel->SetSizer( mainsizer );
wxLayoutConstraints *c = new wxLayoutConstraints;
if (m_cancelButton)
c->left.RightOf (m_confirmButton, 2);
else
c->left.SameAs (panel, wxLeft, 2);
/*
if (m_windowCloseButton)
c->top.Below (m_windowCloseButton, 2);
else
*/
c->top.SameAs (panel, wxTop, 2);
if (m_editButton)
c->right.LeftOf (m_editButton, 2);
else
c->right.SameAs (panel, wxRight, 2);
c->height.AsIs();
m_valueText->SetConstraints(c);
m_valueList = new wxListBox(panel, wxID_PROP_VALUE_SELECT, wxPoint(-1, -1), wxSize(-1, 60));
m_valueList->Show(FALSE);
c = new wxLayoutConstraints;
c->left.SameAs (panel, wxLeft, 2);
c->top.Below (m_valueText, 2);
c->right.SameAs (panel, wxRight, 2);
c->height.Absolute(60);
m_valueList->SetConstraints(c);
m_propertyScrollingList = new wxListBox(panel, wxID_PROP_SELECT,
wxPoint(-1, -1), wxSize(300, 300));
m_propertyScrollingList->SetFont(* boringFont);
c = new wxLayoutConstraints;
c->left.SameAs (panel, wxLeft, 2);
if (m_buttonFlags & wxPROP_DYNAMIC_VALUE_FIELD)
c->top.Below (m_valueText, 2);
else
c->top.Below (m_valueList, 2);
c->right.SameAs (panel, wxRight, 2);
if (m_windowCloseButton)
c->bottom.Above (m_windowCloseButton, -2);
else
c->bottom.SameAs (panel, wxBottom, 2);
m_propertyScrollingList->SetConstraints(c);
// Note: if this is called now, it causes a GPF.
// Why?
// panel->Layout();
return TRUE;
return TRUE;
}
void wxPropertyListView::ShowTextControl(bool show)
@ -651,30 +532,19 @@ void wxPropertyListView::ShowTextControl(bool show)
void wxPropertyListView::ShowListBoxControl(bool show)
{
if (m_valueList)
{
if (!m_valueList) return;
m_valueList->Show(show);
if (m_buttonFlags & wxPROP_DYNAMIC_VALUE_FIELD)
{
wxLayoutConstraints *constraints = m_propertyScrollingList->GetConstraints();
if (constraints)
{
if (show)
{
constraints->top.Below(m_valueList, 2);
// Maintain back-pointer so when valueList is deleted,
// any reference to it from this window is removed.
m_valueList->AddConstraintReference(m_propertyScrollingList);
}
else
{
constraints->top.Below(m_valueText, 2);
m_valueText->AddConstraintReference(m_propertyScrollingList);
}
m_middleSizer->Prepend( m_valueList, 0, wxTOP|wxLEFT|wxRIGHT | wxEXPAND, 3 );
else
m_middleSizer->Remove( 0 );
m_propertyWindow->Layout();
}
}
}
}
void wxPropertyListView::EnableCheck(bool show)
@ -1779,7 +1649,9 @@ bool wxListOfStringsListValidator::EditStringList(wxWindow *parent, wxStringList
wxButton *cancelButton = new wxButton(dialog, wxID_CANCEL, "Cancel", wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight));
wxButton *okButton = new wxButton(dialog, wxID_OK, "OK", wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight));
#ifndef __WXGTK__
okButton->SetDefault();
#endif
wxLayoutConstraints *c = new wxLayoutConstraints;
@ -1950,3 +1822,47 @@ void wxPropertyStringListEditorDialog::ShowCurrentSelection(void)
m_stringText->Enable(TRUE);
}
//-----------------------------------------------------------------------------
// wxPropertyModule
//-----------------------------------------------------------------------------
class wxPropertyModule: public wxModule
{
DECLARE_DYNAMIC_CLASS(wxPropertyModule)
public:
wxPropertyModule() {}
bool OnInit();
void OnExit();
};
IMPLEMENT_DYNAMIC_CLASS(wxPropertyModule,wxModule)
bool wxPropertyModule::OnInit()
{
#ifdef __WXMSW__
gs_tickBitmap = new wxBitmap("tick_bmp", wxBITMAP_TYPE_RESOURCE);
gs_crossBitmap = new wxBitmap("cross_bmp", wxBITMAP_TYPE_RESOURCE);
#else
gs_tickBitmap = new wxBitmap( tick_xpm );
gs_crossBitmap = new wxBitmap( cross_xpm );
#endif
if (!gs_tickBitmap || !gs_crossBitmap || !gs_tickBitmap->Ok() || !gs_crossBitmap->Ok())
{
if (gs_tickBitmap) delete gs_tickBitmap;
if (gs_crossBitmap) delete gs_crossBitmap;
gs_tickBitmap = (wxBitmap*) NULL;
gs_crossBitmap = (wxBitmap*) NULL;
}
return TRUE;
}
void wxPropertyModule::OnExit()
{
if (gs_tickBitmap)
delete gs_tickBitmap;
if (gs_crossBitmap)
delete gs_crossBitmap;
}

View File

@ -587,8 +587,6 @@ bool wxApp::Initialize()
wxInitializeResourceSystem();
#endif
wxImage::InitStandardHandlers();
wxModule::RegisterModules();
if (!wxModule::InitializeModules()) return FALSE;
@ -622,8 +620,6 @@ void wxApp::CleanUp()
wxDeleteStockLists();
wxImage::CleanUpHandlers();
delete wxTheApp;
wxTheApp = (wxApp*) NULL;

View File

@ -105,7 +105,7 @@ static void gtk_bmpbutton_release_callback( GtkWidget *WXUNUSED(widget), wxBitma
// wxBitmapButton
//-----------------------------------------------------------------------------
IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton,wxControl)
IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton,wxButton)
wxBitmapButton::wxBitmapButton()
{

View File

@ -587,8 +587,6 @@ bool wxApp::Initialize()
wxInitializeResourceSystem();
#endif
wxImage::InitStandardHandlers();
wxModule::RegisterModules();
if (!wxModule::InitializeModules()) return FALSE;
@ -622,8 +620,6 @@ void wxApp::CleanUp()
wxDeleteStockLists();
wxImage::CleanUpHandlers();
delete wxTheApp;
wxTheApp = (wxApp*) NULL;

View File

@ -105,7 +105,7 @@ static void gtk_bmpbutton_release_callback( GtkWidget *WXUNUSED(widget), wxBitma
// wxBitmapButton
//-----------------------------------------------------------------------------
IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton,wxControl)
IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton,wxButton)
wxBitmapButton::wxBitmapButton()
{

View File

@ -20,7 +20,7 @@ include $(top_builddir)/src/make.env
all: $(PROGRAM) install_dirs install_data
$(PROGRAM): $(OBJECTS) $(top_builddir)/lib/@WX_TARGET_LIBRARY@
$(CC) $(LDFLAGS) -o $(PROGRAM) $(OBJECTS) $(LDLIBS)
$(CC) $(LDFLAGS) -o $(PROGRAM) $(OBJECTS) $(EXTRALIBS) $(LDLIBS)
install_dirs:
@list='$(DATADIRS)'; for p in $$list; do \