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 that works without libtool and automake, using only
configure to create what is needed. 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 Set WXWIN environment variable to the base directory such
as ~/wxWindows (this is actually not really needed). as ~/wxWindows (this is actually not really needed).

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -172,12 +172,10 @@ public:
wxButton* m_confirmButton; // A tick, as in VB wxButton* m_confirmButton; // A tick, as in VB
wxButton* m_cancelButton; // A cross, as in VB wxButton* m_cancelButton; // A cross, as in VB
wxButton* m_editButton; // Invokes the custom validator, if any wxButton* m_editButton; // Invokes the custom validator, if any
wxSizer* m_middleSizer;
bool m_detailedEditing; // E.g. using listbox for choices 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 wxPanel* m_propertyWindow; // Panel that the controls will appear on
wxWindow* m_managedWindow; // Frame or dialog 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( 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 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 ); void SetDimension( int x, int y, int width, int height );
wxSize GetSize() 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 ) ); 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 ) void wxSizer::Fit( wxWindow *window )
{ {
window->SetSize( GetMinWindowSize( window ) ); window->SetSize( GetMinWindowSize( window ) );
@@ -204,7 +267,7 @@ void wxSizer::Fit( wxWindow *window )
void wxSizer::Layout() void wxSizer::Layout()
{ {
m_size = CalcMin(); CalcMin();
RecalcSizes(); RecalcSizes();
} }
@@ -229,6 +292,7 @@ void wxSizer::SetDimension( int x, int y, int width, int height )
m_position.y = y; m_position.y = y;
m_size.x = width; m_size.x = width;
m_size.y = height; m_size.y = height;
CalcMin();
RecalcSizes(); RecalcSizes();
} }
@@ -244,10 +308,7 @@ wxBoxSizer::wxBoxSizer( int orient )
void wxBoxSizer::RecalcSizes() void wxBoxSizer::RecalcSizes()
{ {
if (m_children.GetCount() == 0) if (m_children.GetCount() == 0)
{
SetDimension( m_position.x, m_position.y, 2, 2 );
return; return;
}
int delta = 0; int delta = 0;
int extra = 0; int extra = 0;

View File

@@ -21,9 +21,21 @@
#endif #endif
#ifndef WX_PRECOMP #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 #endif
#include "wx/sizer.h"
#include "wx/module.h"
#include "wx/intl.h"
#include "wx/colordlg.h" #include "wx/colordlg.h"
#include "wx/proplist.h" #include "wx/proplist.h"
@@ -32,6 +44,19 @@
#include <math.h> #include <math.h>
#include <string.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 * Property text edit control
@@ -60,6 +85,8 @@ void wxPropertyTextEdit::OnKillFocus(void)
* Property list view * Property list view
*/ */
bool wxPropertyListView::sm_dialogCancelled = FALSE;
IMPLEMENT_DYNAMIC_CLASS(wxPropertyListView, wxPropertyView) IMPLEMENT_DYNAMIC_CLASS(wxPropertyListView, wxPropertyView)
BEGIN_EVENT_TABLE(wxPropertyListView, wxPropertyView) BEGIN_EVENT_TABLE(wxPropertyListView, wxPropertyView)
@@ -76,10 +103,6 @@ BEGIN_EVENT_TABLE(wxPropertyListView, wxPropertyView)
EVT_LISTBOX(wxID_PROP_VALUE_SELECT, wxPropertyListView::OnValueListSelect) EVT_LISTBOX(wxID_PROP_VALUE_SELECT, wxPropertyListView::OnValueListSelect)
END_EVENT_TABLE() 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) wxPropertyListView::wxPropertyListView(wxPanel *propPanel, long flags):wxPropertyView(flags)
{ {
m_propertyScrollingList = NULL; m_propertyScrollingList = NULL;
@@ -100,12 +123,6 @@ wxPropertyListView::wxPropertyListView(wxPanel *propPanel, long flags):wxPropert
wxPropertyListView::~wxPropertyListView(void) wxPropertyListView::~wxPropertyListView(void)
{ {
/*
if (m_tickBitmap)
delete m_tickBitmap;
if (m_crossBitmap)
delete m_crossBitmap;
*/
} }
void wxPropertyListView::ShowView(wxPropertySheet *ps, wxPanel *panel) void wxPropertyListView::ShowView(wxPropertySheet *ps, wxPanel *panel)
@@ -389,24 +406,12 @@ 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; wxSize largeButtonSize( 60, 25 );
int largeButtonHeight = 25; wxSize smallButtonSize( 23, 23 );
int smallButtonWidth = 25;
int smallButtonHeight = 20;
// XView must be allowed to choose its own sized buttons
#ifdef __XVIEW__
largeButtonWidth = -1;
largeButtonHeight = -1;
smallButtonWidth = -1;
smallButtonHeight = -1;
#endif
if (m_valueText) if (m_valueText)
return TRUE; return TRUE;
@@ -414,12 +419,6 @@ bool wxPropertyListView::CreateControls(void)
if (!panel) if (!panel)
return FALSE; return FALSE;
wxWindow *leftMostWindow = panel;
/*
wxWindow *topMostWindow = panel;
wxWindow *rightMostWindow = panel;
*/
wxSystemSettings settings; wxSystemSettings settings;
wxFont guiFont = settings.GetSystemFont(wxSYS_DEFAULT_GUI_FONT); wxFont guiFont = settings.GetSystemFont(wxSYS_DEFAULT_GUI_FONT);
@@ -433,212 +432,94 @@ bool wxPropertyListView::CreateControls(void)
// WHAT WAS THIS FOR? // WHAT WAS THIS FOR?
// panel->SetClientData((char *)this); // panel->SetClientData((char *)this);
// These buttons are at the bottom of the window, but create them now wxBoxSizer *mainsizer = new wxBoxSizer( wxVERTICAL );
// 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));
}
if (m_windowCloseButton) // top row with optional buttons and input line
{
wxLayoutConstraints *c1 = new wxLayoutConstraints;
c1->left.SameAs (panel, wxLeft, 2); wxBoxSizer *topsizer = new wxBoxSizer( wxHORIZONTAL );
c1->bottom.SameAs (panel, wxBottom, 2); int buttonborder = 3;
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 (m_buttonFlags & wxPROP_BUTTON_CHECK_CROSS)
{ {
/* if (gs_tickBitmap && gs_crossBitmap)
if (!tickBitmap)
{ {
#ifdef __WXMSW__ m_confirmButton = new wxBitmapButton(panel, wxID_PROP_CHECK, *gs_tickBitmap, wxPoint(-1, -1), smallButtonSize );
tickBitmap = new wxBitmap("tick_bmp", wxBITMAP_TYPE_RESOURCE); m_cancelButton = new wxBitmapButton(panel, wxID_PROP_CROSS, *gs_crossBitmap, wxPoint(-1, -1), smallButtonSize );
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 else
*/
{ {
m_confirmButton = new wxButton(panel, wxID_PROP_CHECK, ":-)", m_confirmButton = new wxButton(panel, wxID_PROP_CHECK, ":-)", wxPoint(-1, -1), smallButtonSize );
wxPoint(-1, -1), wxSize(smallButtonWidth, smallButtonHeight)); m_cancelButton = new wxButton(panel, wxID_PROP_CROSS, "X", wxPoint(-1, -1), smallButtonSize );
m_cancelButton = new wxButton(panel, wxID_PROP_CROSS, "X",
wxPoint(-1, -1), wxSize(smallButtonWidth, smallButtonHeight));
} }
wxLayoutConstraints *c = new wxLayoutConstraints; topsizer->Add( m_confirmButton, 0, wxLEFT|wxTOP|wxBOTTOM | wxEXPAND, buttonborder );
c->left.SameAs (panel, wxLeft, 2); topsizer->Add( m_cancelButton, 0, wxLEFT|wxTOP|wxBOTTOM | wxEXPAND, buttonborder );
/*
if (windowCloseButton)
c->top.Below (m_windowCloseButton, 2);
else
*/
c->top.SameAs (panel, wxTop, 2);
c->width.AsIs();
c->height.AsIs();
m_cancelButton->SetConstraints(c);
c = new wxLayoutConstraints;
c->left.RightOf (m_cancelButton, 2);
c->top.SameAs (m_cancelButton, wxTop, 0);
c->width.AsIs();
c->height.AsIs();
m_confirmButton->SetConstraints(c);
m_cancelButton->Enable(FALSE);
m_confirmButton->Enable(FALSE);
} }
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) if (m_buttonFlags & wxPROP_PULLDOWN)
{ {
m_editButton = new wxButton(panel, wxID_PROP_EDIT, "...", m_editButton = new wxButton(panel, wxID_PROP_EDIT, "...", wxPoint(-1, -1), smallButtonSize);
wxPoint(-1, -1), wxSize(smallButtonWidth, smallButtonHeight));
m_editButton->Enable(FALSE); m_editButton->Enable(FALSE);
wxLayoutConstraints *c = new wxLayoutConstraints; topsizer->Add( m_editButton, 0, wxRIGHT|wxTOP|wxBOTTOM | wxEXPAND, buttonborder );
/*
if (m_windowCloseButton)
c->top.Below (m_windowCloseButton, 2);
else
*/
c->top.SameAs (panel, wxTop, 2);
c->right.SameAs (panel, wxRight, 2);
c->width.AsIs();
c->height.AsIs();
m_editButton->SetConstraints(c);
} }
m_valueText = new wxPropertyTextEdit(this, panel, wxID_PROP_TEXT, "", wxPoint(-1, -1), wxSize(-1, -1), wxPROCESS_ENTER); mainsizer->Add( topsizer, 0, wxEXPAND );
m_valueText->Enable(FALSE);
wxLayoutConstraints *c = new wxLayoutConstraints; // middle section with two list boxes
if (m_cancelButton) m_middleSizer = new wxBoxSizer( wxVERTICAL );
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 = new wxListBox(panel, wxID_PROP_VALUE_SELECT, wxPoint(-1, -1), wxSize(-1, 60));
m_valueList->Show(FALSE); m_valueList->Show(FALSE);
c = new wxLayoutConstraints; m_propertyScrollingList = new wxListBox(panel, wxID_PROP_SELECT, wxPoint(-1, -1), wxSize(100, 100));
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); m_propertyScrollingList->SetFont(* boringFont);
m_middleSizer->Add( m_propertyScrollingList, 1, wxALL|wxEXPAND, buttonborder );
c = new wxLayoutConstraints; mainsizer->Add( m_middleSizer, 1, wxEXPAND );
c->left.SameAs (panel, wxLeft, 2); // bottom row with buttons
if (m_buttonFlags & wxPROP_DYNAMIC_VALUE_FIELD) if ((m_buttonFlags & wxPROP_BUTTON_OK) ||
c->top.Below (m_valueText, 2); (m_buttonFlags & wxPROP_BUTTON_CLOSE) ||
else (m_buttonFlags & wxPROP_BUTTON_CANCEL) ||
c->top.Below (m_valueList, 2); (m_buttonFlags & wxPROP_BUTTON_HELP))
{
wxBoxSizer *bottomsizer = new wxBoxSizer( wxHORIZONTAL );
buttonborder = 5;
c->right.SameAs (panel, wxRight, 2); 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 );
}
if (m_windowCloseButton) mainsizer->Add( bottomsizer, 1, wxALIGN_RIGHT | wxEXPAND );
c->bottom.Above (m_windowCloseButton, -2); }
else
c->bottom.SameAs (panel, wxBottom, 2);
m_propertyScrollingList->SetConstraints(c); panel->SetSizer( mainsizer );
// Note: if this is called now, it causes a GPF.
// Why?
// panel->Layout();
return TRUE; return TRUE;
} }
@@ -651,30 +532,19 @@ void wxPropertyListView::ShowTextControl(bool show)
void wxPropertyListView::ShowListBoxControl(bool show) void wxPropertyListView::ShowListBoxControl(bool show)
{ {
if (m_valueList) if (!m_valueList) return;
{
m_valueList->Show(show); m_valueList->Show(show);
if (m_buttonFlags & wxPROP_DYNAMIC_VALUE_FIELD) if (m_buttonFlags & wxPROP_DYNAMIC_VALUE_FIELD)
{
wxLayoutConstraints *constraints = m_propertyScrollingList->GetConstraints();
if (constraints)
{ {
if (show) if (show)
{ m_middleSizer->Prepend( m_valueList, 0, wxTOP|wxLEFT|wxRIGHT | wxEXPAND, 3 );
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 else
{ m_middleSizer->Remove( 0 );
constraints->top.Below(m_valueText, 2);
m_valueText->AddConstraintReference(m_propertyScrollingList);
}
m_propertyWindow->Layout(); m_propertyWindow->Layout();
} }
}
}
} }
void wxPropertyListView::EnableCheck(bool show) 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 *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)); wxButton *okButton = new wxButton(dialog, wxID_OK, "OK", wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight));
#ifndef __WXGTK__
okButton->SetDefault(); okButton->SetDefault();
#endif
wxLayoutConstraints *c = new wxLayoutConstraints; wxLayoutConstraints *c = new wxLayoutConstraints;
@@ -1950,3 +1822,47 @@ void wxPropertyStringListEditorDialog::ShowCurrentSelection(void)
m_stringText->Enable(TRUE); 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(); wxInitializeResourceSystem();
#endif #endif
wxImage::InitStandardHandlers();
wxModule::RegisterModules(); wxModule::RegisterModules();
if (!wxModule::InitializeModules()) return FALSE; if (!wxModule::InitializeModules()) return FALSE;
@@ -622,8 +620,6 @@ void wxApp::CleanUp()
wxDeleteStockLists(); wxDeleteStockLists();
wxImage::CleanUpHandlers();
delete wxTheApp; delete wxTheApp;
wxTheApp = (wxApp*) NULL; wxTheApp = (wxApp*) NULL;

View File

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

View File

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

View File

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

View File

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