Calling a Refresh() before the window is created no longer

gives an assert. Nothing will happen.
  Added wxTreeCtrl::InsertItem( paret, before, ... ),
  Correct some places with incorrectly indented code.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5126 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling 1999-12-28 13:08:04 +00:00
parent 9b6b575004
commit f2593d0dda
18 changed files with 350 additions and 306 deletions

View File

@ -1,12 +1,22 @@
19th December '99: wxWindows 2.1.12 released
6th January '2000: wxWindows 2.1.12 released
Who has a BigEndian computer (e.g. Sparc) that runs a 15 and/or
16 bit colour mode? I need this for testing purposes, i.e. this
Who has a BigEndian computer (e.g. Sparc or PowerPC) that runs a 15
and/or 16 bit colour mode? I need this for testing purposes, i.e. this
person could help me by running a small testprogram and sending
me the output.
Added support for multiple font and colour support to item in
Updated the 64-bit long class (a class that substitutes a 64-bit int
type on platforms which don't provide a native one).
Added wxImage::Replace() (for replacing colours) and wxImage::GetSubImage().
Also corrected conversion from mono bitmaps to wxImage.
Added wxBitmap::GetSubBitmap().
Removed some flicker from tree ctrl. Minor optical changes.
Added support for multiple font and colour support for items in
list ctrls and tree ctrls.
Added support for multiple-selection file dialog.
@ -51,7 +61,7 @@ The ODBC classes can now be configured at run-time if they
are to use forward-only cursors or not.
Added wxDateTime class. The existing classes wxTime and wxDate
have been reimplemented and corrected using wxDatTime.
have been reimplemented and corrected using wxDateTime.
Rewritten wxThread to have a flag controlling if the
thread will delete its C++ class itself ("delete this") or
@ -81,7 +91,7 @@ several such canvasses.
Some minor updates to wxSockets. Fixed timeout problem.
Speed-up for new encoding related font code.
Speed-up for new encoding related font code. Minor fixes.
Changed wxListBox to send deferred events, i.e. events emitted by
the listbox won't get processed before the next idle message.

View File

@ -449,7 +449,10 @@ in {\it flags}. {\it flags} is a bitlist of the following:
\func{wxTreeItemId}{InsertItem}{\param{const wxTreeItemId\& }{parent}, \param{const wxTreeItemId\& }{previous}, \param{const wxString\&}{ text},
\param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = NULL}}
Inserts an item after a given one.
\func{wxTreeItemId}{InsertItem}{\param{const wxTreeItemId\& }{parent}, \param{size\_t}{ before}, \param{const wxString\&}{ text},
\param{int}{ image = -1}, \param{int}{ selImage = -1}, \param{wxTreeItemData*}{ data = NULL}}
Inserts an item after a given one ({\it previous}) or before one identified by its position ({\it before}).
If {\it image} > -1 and {\it selImage} is -1, the same image is used for
both selected and unselected items.

View File

@ -337,6 +337,13 @@ public:
int image = -1, int selectedImage = -1,
wxTreeItemData *data = NULL);
// insert a new item before a given one
wxTreeItemId InsertItem(const wxTreeItemId& parent,
size_t before,
const wxString& text,
int image = -1, int selectedImage = -1,
wxTreeItemData *data = NULL);
// insert a new item in as the last child of the parent
wxTreeItemId AppendItem(const wxTreeItemId& parent,
const wxString& text,

View File

@ -363,7 +363,7 @@ size_t wxGenericTreeItem::GetChildrenCount(bool recursively) const
return count;
size_t total = count;
for ( size_t n = 0; n < count; ++n )
for (size_t n = 0; n < count; ++n)
{
total += m_children[n]->GetChildrenCount();
}
@ -398,62 +398,63 @@ wxGenericTreeItem *wxGenericTreeItem::HitTest( const wxPoint& point,
const wxTreeCtrl *theTree,
int &flags)
{
if ((point.y > m_y) && (point.y < m_y + theTree->GetLineHeight(this)))
{
if (point.y<m_y+theTree->GetLineHeight(this)/2)
flags |= wxTREE_HITTEST_ONITEMUPPERPART;
if ((point.y > m_y) && (point.y < m_y + theTree->GetLineHeight(this)))
{
if (point.y<m_y+theTree->GetLineHeight(this)/2)
flags |= wxTREE_HITTEST_ONITEMUPPERPART;
else
flags |= wxTREE_HITTEST_ONITEMLOWERPART;
// 5 is the size of the plus sign
if ((point.x > m_xCross-5) && (point.x < m_xCross+5) &&
(point.y > m_yCross-5) && (point.y < m_yCross+5) &&
(IsExpanded() || HasPlus()))
{
flags|=wxTREE_HITTEST_ONITEMBUTTON;
return this;
}
if ((point.x >= m_x) && (point.x <= m_x+m_width))
{
int image_w = -1;
int image_h;
// assuming every image (normal and selected ) has the same size !
if ( (GetImage() != NO_IMAGE) && theTree->m_imageListNormal )
theTree->m_imageListNormal->GetSize(GetImage(), image_w, image_h);
if ((image_w != -1) && (point.x <= m_x + image_w + 1))
flags |= wxTREE_HITTEST_ONITEMICON;
else
flags |= wxTREE_HITTEST_ONITEMLABEL;
return this;
}
if (point.x < m_x)
flags |= wxTREE_HITTEST_ONITEMINDENT;
if (point.x > m_x+m_width)
flags |= wxTREE_HITTEST_ONITEMRIGHT;
return this;
}
else
flags |= wxTREE_HITTEST_ONITEMLOWERPART;
// 5 is the size of the plus sign
if ((point.x > m_xCross-5) && (point.x < m_xCross+5) &&
(point.y > m_yCross-5) && (point.y < m_yCross+5) &&
(IsExpanded() || HasPlus()))
{
flags|=wxTREE_HITTEST_ONITEMBUTTON;
return this;
if (!m_isCollapsed)
{
size_t count = m_children.Count();
for ( size_t n = 0; n < count; n++ )
{
wxGenericTreeItem *res = m_children[n]->HitTest( point, theTree, flags );
if ( res != NULL )
return res;
}
}
}
if ((point.x >= m_x) && (point.x <= m_x+m_width))
{
int image_w = -1;
int image_h;
flags|=wxTREE_HITTEST_NOWHERE;
// assuming every image (normal and selected ) has the same size !
if ( (GetImage() != NO_IMAGE) && theTree->m_imageListNormal )
theTree->m_imageListNormal->GetSize(GetImage(), image_w, image_h);
if ((image_w != -1) && (point.x <= m_x + image_w + 1))
flags |= wxTREE_HITTEST_ONITEMICON;
else
flags |= wxTREE_HITTEST_ONITEMLABEL;
return this;
}
if (point.x < m_x)
flags |= wxTREE_HITTEST_ONITEMINDENT;
if (point.x > m_x+m_width)
flags |= wxTREE_HITTEST_ONITEMRIGHT;
return this;
}
else
{
if (!m_isCollapsed)
{
size_t count = m_children.Count();
for ( size_t n = 0; n < count; n++ )
{
wxGenericTreeItem *res = m_children[n]->HitTest( point, theTree, flags );
if ( res != NULL )
return res;
}
}
}
flags|=wxTREE_HITTEST_NOWHERE;
return NULL;
return (wxGenericTreeItem*) NULL;
}
int wxGenericTreeItem::GetCurrentImage() const
@ -581,28 +582,28 @@ wxTreeCtrl::~wxTreeCtrl()
size_t wxTreeCtrl::GetCount() const
{
return m_anchor == NULL ? 0u : m_anchor->GetChildrenCount();
return m_anchor == NULL ? 0u : m_anchor->GetChildrenCount();
}
void wxTreeCtrl::SetIndent(unsigned int indent)
{
m_indent = indent;
m_dirty = TRUE;
Refresh();
m_indent = indent;
m_dirty = TRUE;
Refresh();
}
void wxTreeCtrl::SetSpacing(unsigned int spacing)
{
m_spacing = spacing;
m_dirty = TRUE;
Refresh();
m_spacing = spacing;
m_dirty = TRUE;
Refresh();
}
size_t wxTreeCtrl::GetChildrenCount(const wxTreeItemId& item, bool recursively)
{
wxCHECK_MSG( item.IsOk(), 0u, wxT("invalid tree item") );
wxCHECK_MSG( item.IsOk(), 0u, wxT("invalid tree item") );
return item.m_pItem->GetChildrenCount(recursively);
return item.m_pItem->GetChildrenCount(recursively);
}
// -----------------------------------------------------------------------------
@ -611,35 +612,35 @@ size_t wxTreeCtrl::GetChildrenCount(const wxTreeItemId& item, bool recursively)
wxString wxTreeCtrl::GetItemText(const wxTreeItemId& item) const
{
wxCHECK_MSG( item.IsOk(), wxT(""), wxT("invalid tree item") );
wxCHECK_MSG( item.IsOk(), wxT(""), wxT("invalid tree item") );
return item.m_pItem->GetText();
return item.m_pItem->GetText();
}
int wxTreeCtrl::GetItemImage(const wxTreeItemId& item,
wxTreeItemIcon which) const
{
wxCHECK_MSG( item.IsOk(), -1, wxT("invalid tree item") );
wxCHECK_MSG( item.IsOk(), -1, wxT("invalid tree item") );
return item.m_pItem->GetImage(which);
return item.m_pItem->GetImage(which);
}
wxTreeItemData *wxTreeCtrl::GetItemData(const wxTreeItemId& item) const
{
wxCHECK_MSG( item.IsOk(), NULL, wxT("invalid tree item") );
wxCHECK_MSG( item.IsOk(), NULL, wxT("invalid tree item") );
return item.m_pItem->GetData();
return item.m_pItem->GetData();
}
void wxTreeCtrl::SetItemText(const wxTreeItemId& item, const wxString& text)
{
wxCHECK_RET( item.IsOk(), wxT("invalid tree item") );
wxCHECK_RET( item.IsOk(), wxT("invalid tree item") );
wxClientDC dc(this);
wxGenericTreeItem *pItem = item.m_pItem;
pItem->SetText(text);
CalculateSize(pItem, dc);
RefreshLine(pItem);
wxClientDC dc(this);
wxGenericTreeItem *pItem = item.m_pItem;
pItem->SetText(text);
CalculateSize(pItem, dc);
RefreshLine(pItem);
}
void wxTreeCtrl::SetItemImage(const wxTreeItemId& item,
@ -658,18 +659,18 @@ void wxTreeCtrl::SetItemImage(const wxTreeItemId& item,
void wxTreeCtrl::SetItemData(const wxTreeItemId& item, wxTreeItemData *data)
{
wxCHECK_RET( item.IsOk(), wxT("invalid tree item") );
wxCHECK_RET( item.IsOk(), wxT("invalid tree item") );
item.m_pItem->SetData(data);
item.m_pItem->SetData(data);
}
void wxTreeCtrl::SetItemHasChildren(const wxTreeItemId& item, bool has)
{
wxCHECK_RET( item.IsOk(), wxT("invalid tree item") );
wxCHECK_RET( item.IsOk(), wxT("invalid tree item") );
wxGenericTreeItem *pItem = item.m_pItem;
pItem->SetHasPlus(has);
RefreshLine(pItem);
wxGenericTreeItem *pItem = item.m_pItem;
pItem->SetHasPlus(has);
RefreshLine(pItem);
}
void wxTreeCtrl::SetItemBold(const wxTreeItemId& item, bool bold)
@ -720,37 +721,37 @@ void wxTreeCtrl::SetItemFont(const wxTreeItemId& item, const wxFont& font)
bool wxTreeCtrl::IsVisible(const wxTreeItemId& WXUNUSED(item)) const
{
wxFAIL_MSG(wxT("not implemented"));
wxFAIL_MSG(wxT("not implemented"));
return TRUE;
return TRUE;
}
bool wxTreeCtrl::ItemHasChildren(const wxTreeItemId& item) const
{
wxCHECK_MSG( item.IsOk(), FALSE, wxT("invalid tree item") );
wxCHECK_MSG( item.IsOk(), FALSE, wxT("invalid tree item") );
return !item.m_pItem->GetChildren().IsEmpty();
return !item.m_pItem->GetChildren().IsEmpty();
}
bool wxTreeCtrl::IsExpanded(const wxTreeItemId& item) const
{
wxCHECK_MSG( item.IsOk(), FALSE, wxT("invalid tree item") );
wxCHECK_MSG( item.IsOk(), FALSE, wxT("invalid tree item") );
return item.m_pItem->IsExpanded();
return item.m_pItem->IsExpanded();
}
bool wxTreeCtrl::IsSelected(const wxTreeItemId& item) const
{
wxCHECK_MSG( item.IsOk(), FALSE, wxT("invalid tree item") );
wxCHECK_MSG( item.IsOk(), FALSE, wxT("invalid tree item") );
return item.m_pItem->IsSelected();
return item.m_pItem->IsSelected();
}
bool wxTreeCtrl::IsBold(const wxTreeItemId& item) const
{
wxCHECK_MSG( item.IsOk(), FALSE, wxT("invalid tree item") );
wxCHECK_MSG( item.IsOk(), FALSE, wxT("invalid tree item") );
return item.m_pItem->IsBold();
return item.m_pItem->IsBold();
}
// -----------------------------------------------------------------------------
@ -911,7 +912,7 @@ wxTreeItemId wxTreeCtrl::AddRoot(const wxString& text,
if (!HasFlag(wxTR_MULTIPLE))
{
m_current = m_key_current = m_anchor;
m_current->SetHilight( TRUE );
m_current->SetHilight( TRUE );
}
Refresh();
@ -925,7 +926,7 @@ wxTreeItemId wxTreeCtrl::PrependItem(const wxTreeItemId& parent,
int image, int selImage,
wxTreeItemData *data)
{
return DoInsertItem(parent, 0u, text, image, selImage, data);
return DoInsertItem(parent, 0u, text, image, selImage, data);
}
wxTreeItemId wxTreeCtrl::InsertItem(const wxTreeItemId& parentId,
@ -934,17 +935,34 @@ wxTreeItemId wxTreeCtrl::InsertItem(const wxTreeItemId& parentId,
int image, int selImage,
wxTreeItemData *data)
{
wxGenericTreeItem *parent = parentId.m_pItem;
if ( !parent )
{
// should we give a warning here?
return AddRoot(text, image, selImage, data);
}
wxGenericTreeItem *parent = parentId.m_pItem;
if ( !parent )
{
// should we give a warning here?
return AddRoot(text, image, selImage, data);
}
int index = parent->GetChildren().Index(idPrevious.m_pItem);
wxASSERT_MSG( index != wxNOT_FOUND,
wxT("previous item in wxTreeCtrl::InsertItem() is not a sibling") );
return DoInsertItem(parentId, (size_t)++index, text, image, selImage, data);
int index = parent->GetChildren().Index(idPrevious.m_pItem);
wxASSERT_MSG( index != wxNOT_FOUND,
wxT("previous item in wxTreeCtrl::InsertItem() is not a sibling") );
return DoInsertItem(parentId, (size_t)++index, text, image, selImage, data);
}
wxTreeItemId wxTreeCtrl::InsertItem(const wxTreeItemId& parentId,
size_t before,
const wxString& text,
int image, int selImage,
wxTreeItemData *data)
{
wxGenericTreeItem *parent = parentId.m_pItem;
if ( !parent )
{
// should we give a warning here?
return AddRoot(text, image, selImage, data);
}
return DoInsertItem(parentId, before, text, image, selImage, data);
}
wxTreeItemId wxTreeCtrl::AppendItem(const wxTreeItemId& parentId,
@ -952,23 +970,23 @@ wxTreeItemId wxTreeCtrl::AppendItem(const wxTreeItemId& parentId,
int image, int selImage,
wxTreeItemData *data)
{
wxGenericTreeItem *parent = parentId.m_pItem;
if ( !parent )
{
// should we give a warning here?
return AddRoot(text, image, selImage, data);
}
wxGenericTreeItem *parent = parentId.m_pItem;
if ( !parent )
{
// should we give a warning here?
return AddRoot(text, image, selImage, data);
}
return DoInsertItem(parent, parent->GetChildren().Count(), text,
image, selImage, data);
return DoInsertItem( parent, parent->GetChildren().Count(), text,
image, selImage, data);
}
void wxTreeCtrl::SendDeleteEvent(wxGenericTreeItem *item)
{
wxTreeEvent event( wxEVT_COMMAND_TREE_DELETE_ITEM, GetId() );
event.m_item = item;
event.SetEventObject( this );
ProcessEvent( event );
wxTreeEvent event( wxEVT_COMMAND_TREE_DELETE_ITEM, GetId() );
event.m_item = item;
event.SetEventObject( this );
ProcessEvent( event );
}
void wxTreeCtrl::DeleteChildren(const wxTreeItemId& itemId)
@ -1011,65 +1029,65 @@ void wxTreeCtrl::DeleteAllItems()
void wxTreeCtrl::Expand(const wxTreeItemId& itemId)
{
wxGenericTreeItem *item = itemId.m_pItem;
wxGenericTreeItem *item = itemId.m_pItem;
if ( !item->HasPlus() )
return;
if ( !item->HasPlus() )
return;
if ( item->IsExpanded() )
return;
if ( item->IsExpanded() )
return;
wxTreeEvent event( wxEVT_COMMAND_TREE_ITEM_EXPANDING, GetId() );
event.m_item = item;
event.SetEventObject( this );
wxTreeEvent event( wxEVT_COMMAND_TREE_ITEM_EXPANDING, GetId() );
event.m_item = item;
event.SetEventObject( this );
// if ( ProcessEvent( event ) && event.m_code ) TODO: Was this a typo ?
if ( ProcessEvent( event ) && !event.IsAllowed() )
{
// cancelled by program
return;
}
if ( ProcessEvent( event ) && !event.IsAllowed() )
{
// cancelled by program
return;
}
item->Expand();
CalculatePositions();
item->Expand();
CalculatePositions();
RefreshSubtree(item);
RefreshSubtree(item);
event.SetEventType(wxEVT_COMMAND_TREE_ITEM_EXPANDED);
ProcessEvent( event );
event.SetEventType(wxEVT_COMMAND_TREE_ITEM_EXPANDED);
ProcessEvent( event );
}
void wxTreeCtrl::Collapse(const wxTreeItemId& itemId)
{
wxGenericTreeItem *item = itemId.m_pItem;
wxGenericTreeItem *item = itemId.m_pItem;
if ( !item->IsExpanded() )
return;
if ( !item->IsExpanded() )
return;
wxTreeEvent event( wxEVT_COMMAND_TREE_ITEM_COLLAPSING, GetId() );
event.m_item = item;
event.SetEventObject( this );
if ( ProcessEvent( event ) && !event.IsAllowed() )
{
// cancelled by program
return;
}
wxTreeEvent event( wxEVT_COMMAND_TREE_ITEM_COLLAPSING, GetId() );
event.m_item = item;
event.SetEventObject( this );
if ( ProcessEvent( event ) && !event.IsAllowed() )
{
// cancelled by program
return;
}
item->Collapse();
item->Collapse();
wxArrayGenericTreeItems& children = item->GetChildren();
size_t count = children.Count();
for ( size_t n = 0; n < count; n++ )
{
Collapse(children[n]);
}
wxArrayGenericTreeItems& children = item->GetChildren();
size_t count = children.Count();
for ( size_t n = 0; n < count; n++ )
{
Collapse(children[n]);
}
CalculatePositions();
CalculatePositions();
RefreshSubtree(item);
RefreshSubtree(item);
event.SetEventType(wxEVT_COMMAND_TREE_ITEM_COLLAPSED);
ProcessEvent( event );
event.SetEventType(wxEVT_COMMAND_TREE_ITEM_COLLAPSED);
ProcessEvent( event );
}
void wxTreeCtrl::CollapseAndReset(const wxTreeItemId& item)
@ -1163,7 +1181,7 @@ bool wxTreeCtrl::TagAllChildrenUntilLast(wxGenericTreeItem *crt_item, wxGenericT
{
if (TagAllChildrenUntilLast(children[n], last_item, select))
return TRUE;
}
}
}
return FALSE;
@ -1171,27 +1189,27 @@ bool wxTreeCtrl::TagAllChildrenUntilLast(wxGenericTreeItem *crt_item, wxGenericT
void wxTreeCtrl::SelectItemRange(wxGenericTreeItem *item1, wxGenericTreeItem *item2)
{
// item2 is not necessary after item1
wxGenericTreeItem *first=NULL, *last=NULL;
// item2 is not necessary after item1
wxGenericTreeItem *first=NULL, *last=NULL;
// choice first' and 'last' between item1 and item2
if (item1->GetY()<item2->GetY())
{
first=item1;
last=item2;
}
else
{
first=item2;
last=item1;
}
// choice first' and 'last' between item1 and item2
if (item1->GetY()<item2->GetY())
{
first=item1;
last=item2;
}
else
{
first=item2;
last=item1;
}
bool select = m_current->IsSelected();
bool select = m_current->IsSelected();
if ( TagAllChildrenUntilLast(first,last,select) )
return;
if ( TagAllChildrenUntilLast(first,last,select) )
return;
TagNextChildren(first,last,select);
TagNextChildren(first,last,select);
}
void wxTreeCtrl::SelectItem(const wxTreeItemId& itemId,
@ -1404,27 +1422,27 @@ wxImageList *wxTreeCtrl::GetStateImageList() const
void wxTreeCtrl::SetImageList(wxImageList *imageList)
{
m_imageListNormal = imageList;
m_imageListNormal = imageList;
// Calculate a m_lineHeight value from the image sizes.
// May be toggle off. Then wxTreeCtrl will spread when
// necessary (which might look ugly).
// Calculate a m_lineHeight value from the image sizes.
// May be toggle off. Then wxTreeCtrl will spread when
// necessary (which might look ugly).
#if 1
wxClientDC dc(this);
m_lineHeight = (int)(dc.GetCharHeight() + 4);
int
width = 0,
height = 0,
n = m_imageListNormal->GetImageCount();
for(int i = 0; i < n ; i++)
{
m_imageListNormal->GetSize(i, width, height);
if(height > m_lineHeight) m_lineHeight = height;
}
wxClientDC dc(this);
m_lineHeight = (int)(dc.GetCharHeight() + 4);
int width = 0, height = 0,
n = m_imageListNormal->GetImageCount();
if (m_lineHeight<40) m_lineHeight+=2; // at least 4 pixels (odd such that a line can be drawn in between)
else m_lineHeight+=m_lineHeight/10; // otherwise 10% extra spacing
for (int i = 0; i < n ; i++)
{
m_imageListNormal->GetSize(i, width, height);
if (height > m_lineHeight) m_lineHeight = height;
}
if (m_lineHeight < 40)
m_lineHeight += 2; // at least 2 pixels
else
m_lineHeight += m_lineHeight/10; // otherwise 10% extra spacing
#endif
}
@ -2086,8 +2104,10 @@ void wxTreeCtrl::CalculateSize( wxGenericTreeItem *item, wxDC &dc )
int total_h = (image_h > text_h) ? image_h : text_h;
if (total_h<40) total_h+=2; // at least 4 pixels
else total_h+=total_h/10; // otherwise 10% extra spacing
if (total_h < 40)
total_h += 2; // at least 2 pixels
else
total_h += total_h/10; // otherwise 10% extra spacing
item->SetHeight(total_h);
if (total_h>m_lineHeight) m_lineHeight=total_h;
@ -2118,7 +2138,7 @@ void wxTreeCtrl::CalculateLevel( wxGenericTreeItem *item, wxDC &dc, int level, i
wxArrayGenericTreeItems& children = item->GetChildren();
size_t n, count = children.Count();
for (n = 0; n < count; ++n )
CalculateLevel( children[n], dc, level+1, y ); // recurse
CalculateLevel( children[n], dc, level+1, y ); // recurse
}
void wxTreeCtrl::CalculatePositions()

View File

@ -24,9 +24,9 @@
class wxAccelRefData: public wxObjectRefData
{
public:
wxAccelRefData();
wxAccelRefData();
wxList m_accels;
wxList m_accels;
};
wxAccelRefData::wxAccelRefData()

View File

@ -112,24 +112,24 @@ bool wxMask::Create( const wxBitmap& bitmap,
for (int j = 0; j < image.GetHeight(); j++)
{
int start_x = -1;
int i;
for (i = 0; i < image.GetWidth(); i++)
int start_x = -1;
int i;
for (i = 0; i < image.GetWidth(); i++)
{
if ((data[index] == red) &&
(data[index+1] == green) &&
(data[index+2] == blue))
{
if (start_x == -1)
start_x = i;
}
else
{
if (start_x != -1)
{
gdk_draw_line( m_bitmap, gc, start_x, j, i-1, j );
start_x = -1;
}
if ((data[index] == red) &&
(data[index+1] == green) &&
(data[index+2] == blue))
{
if (start_x == -1)
start_x = i;
}
else
{
if (start_x != -1)
{
gdk_draw_line( m_bitmap, gc, start_x, j, i-1, j );
start_x = -1;
}
}
index += 3;
}
@ -193,16 +193,16 @@ GdkBitmap *wxMask::GetBitmap() const
class wxBitmapRefData: public wxObjectRefData
{
public:
wxBitmapRefData();
~wxBitmapRefData();
wxBitmapRefData();
~wxBitmapRefData();
GdkPixmap *m_pixmap;
GdkBitmap *m_bitmap;
wxMask *m_mask;
int m_width;
int m_height;
int m_bpp;
wxPalette *m_palette;
GdkPixmap *m_pixmap;
GdkBitmap *m_bitmap;
wxMask *m_mask;
int m_width;
int m_height;
int m_bpp;
wxPalette *m_palette;
};
wxBitmapRefData::wxBitmapRefData()
@ -388,7 +388,7 @@ wxBitmap wxBitmap::GetSubBitmap( const wxRect& rect) const
{
wxCHECK_MSG( Ok() &&
(rect.x >= 0) && (rect.y >= 0) &&
(rect.x+rect.width <= M_BMPDATA->m_width) && (rect.y+rect.height <= M_BMPDATA->m_height),
(rect.x+rect.width <= M_BMPDATA->m_width) && (rect.y+rect.height <= M_BMPDATA->m_height),
wxNullBitmap, wxT("invalid bitmap or bitmap region") );
wxBitmap ret( rect.width, rect.height, M_BMPDATA->m_bpp );
@ -397,14 +397,14 @@ wxBitmap wxBitmap::GetSubBitmap( const wxRect& rect) const
if (ret.GetPixmap())
{
GdkGC *gc = gdk_gc_new( ret.GetPixmap() );
gdk_draw_pixmap( ret.GetPixmap(), gc, GetPixmap(), rect.x, rect.y, 0, 0, rect.width, rect.height );
gdk_gc_destroy( gc );
gdk_draw_pixmap( ret.GetPixmap(), gc, GetPixmap(), rect.x, rect.y, 0, 0, rect.width, rect.height );
gdk_gc_destroy( gc );
}
else
{
GdkGC *gc = gdk_gc_new( ret.GetBitmap() );
gdk_draw_bitmap( ret.GetBitmap(), gc, GetBitmap(), rect.x, rect.y, 0, 0, rect.width, rect.height );
gdk_gc_destroy( gc );
gdk_draw_bitmap( ret.GetBitmap(), gc, GetBitmap(), rect.x, rect.y, 0, 0, rect.width, rect.height );
gdk_gc_destroy( gc );
}
if (GetMask())
@ -414,10 +414,10 @@ wxBitmap wxBitmap::GetSubBitmap( const wxRect& rect) const
mask->m_bitmap = gdk_pixmap_new( parent, rect.width, rect.height, 1 );
GdkGC *gc = gdk_gc_new( mask->m_bitmap );
gdk_draw_bitmap( mask->m_bitmap, gc, M_BMPDATA->m_mask->m_bitmap, 0, 0, rect.x, rect.y, rect.width, rect.height );
gdk_gc_destroy( gc );
gdk_draw_bitmap( mask->m_bitmap, gc, M_BMPDATA->m_mask->m_bitmap, 0, 0, rect.x, rect.y, rect.width, rect.height );
gdk_gc_destroy( gc );
ret.SetMask( mask );
ret.SetMask( mask );
}
return ret;

View File

@ -218,15 +218,15 @@ void wxBitmapButton::SetBitmap()
else
{
if (m_isSelected)
{
the_one = m_selected;
}
{
the_one = m_selected;
}
else
{
{
if (m_hasFocus)
the_one = m_focus;
the_one = m_focus;
else
the_one = m_bitmap;
the_one = m_bitmap;
}
}

View File

@ -77,7 +77,7 @@ bool wxButton::Create( wxWindow *parent, wxWindowID id, const wxString &label,
!CreateBase( parent, id, pos, size, style, validator, name ))
{
wxFAIL_MSG( wxT("wxButton creation failed") );
return FALSE;
return FALSE;
}
/*

View File

@ -77,7 +77,7 @@ bool wxCheckBox::Create(wxWindow *parent,
!CreateBase( parent, id, pos, size, style, validator, name ))
{
wxFAIL_MSG( wxT("wxCheckBox creation failed") );
return FALSE;
return FALSE;
}
wxControl::SetLabel( label );
@ -191,11 +191,11 @@ void wxCheckBox::OnInternalIdle()
if (GTK_TOGGLE_BUTTON(m_widgetCheckbox)->event_window && cursor.Ok())
{
/* I now set the cursor the anew in every OnInternalIdle call
as setting the cursor in a parent window also effects the
windows above so that checking for the current cursor is
not possible. */
as setting the cursor in a parent window also effects the
windows above so that checking for the current cursor is
not possible. */
gdk_window_set_cursor( GTK_TOGGLE_BUTTON(m_widgetCheckbox)->event_window, cursor.GetCursor() );
gdk_window_set_cursor( GTK_TOGGLE_BUTTON(m_widgetCheckbox)->event_window, cursor.GetCursor() );
}
UpdateWindowUI();

View File

@ -152,15 +152,18 @@ wxDataObject::wxDataObject()
bool wxDataObject::IsSupportedFormat(const wxDataFormat& format, Direction dir) const
{
size_t nFormatCount = GetFormatCount(dir);
if ( nFormatCount == 1 ) {
if ( nFormatCount == 1 )
{
return format == GetPreferredFormat();
}
else {
else
{
wxDataFormat *formats = new wxDataFormat[nFormatCount];
GetAllFormats(formats,dir);
size_t n;
for ( n = 0; n < nFormatCount; n++ ) {
for ( n = 0; n < nFormatCount; n++ )
{
if ( formats[n] == format )
break;
}

View File

@ -2776,8 +2776,7 @@ void wxWindow::WarpPointer( int x, int y )
void wxWindow::Refresh( bool eraseBackground, const wxRect *rect )
{
wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
if (!m_widget) return;
if (!m_widget->window) return;
if (eraseBackground && m_wxwindow && m_wxwindow->window)

View File

@ -24,9 +24,9 @@
class wxAccelRefData: public wxObjectRefData
{
public:
wxAccelRefData();
wxAccelRefData();
wxList m_accels;
wxList m_accels;
};
wxAccelRefData::wxAccelRefData()

View File

@ -112,24 +112,24 @@ bool wxMask::Create( const wxBitmap& bitmap,
for (int j = 0; j < image.GetHeight(); j++)
{
int start_x = -1;
int i;
for (i = 0; i < image.GetWidth(); i++)
int start_x = -1;
int i;
for (i = 0; i < image.GetWidth(); i++)
{
if ((data[index] == red) &&
(data[index+1] == green) &&
(data[index+2] == blue))
{
if (start_x == -1)
start_x = i;
}
else
{
if (start_x != -1)
{
gdk_draw_line( m_bitmap, gc, start_x, j, i-1, j );
start_x = -1;
}
if ((data[index] == red) &&
(data[index+1] == green) &&
(data[index+2] == blue))
{
if (start_x == -1)
start_x = i;
}
else
{
if (start_x != -1)
{
gdk_draw_line( m_bitmap, gc, start_x, j, i-1, j );
start_x = -1;
}
}
index += 3;
}
@ -193,16 +193,16 @@ GdkBitmap *wxMask::GetBitmap() const
class wxBitmapRefData: public wxObjectRefData
{
public:
wxBitmapRefData();
~wxBitmapRefData();
wxBitmapRefData();
~wxBitmapRefData();
GdkPixmap *m_pixmap;
GdkBitmap *m_bitmap;
wxMask *m_mask;
int m_width;
int m_height;
int m_bpp;
wxPalette *m_palette;
GdkPixmap *m_pixmap;
GdkBitmap *m_bitmap;
wxMask *m_mask;
int m_width;
int m_height;
int m_bpp;
wxPalette *m_palette;
};
wxBitmapRefData::wxBitmapRefData()
@ -388,7 +388,7 @@ wxBitmap wxBitmap::GetSubBitmap( const wxRect& rect) const
{
wxCHECK_MSG( Ok() &&
(rect.x >= 0) && (rect.y >= 0) &&
(rect.x+rect.width <= M_BMPDATA->m_width) && (rect.y+rect.height <= M_BMPDATA->m_height),
(rect.x+rect.width <= M_BMPDATA->m_width) && (rect.y+rect.height <= M_BMPDATA->m_height),
wxNullBitmap, wxT("invalid bitmap or bitmap region") );
wxBitmap ret( rect.width, rect.height, M_BMPDATA->m_bpp );
@ -397,14 +397,14 @@ wxBitmap wxBitmap::GetSubBitmap( const wxRect& rect) const
if (ret.GetPixmap())
{
GdkGC *gc = gdk_gc_new( ret.GetPixmap() );
gdk_draw_pixmap( ret.GetPixmap(), gc, GetPixmap(), rect.x, rect.y, 0, 0, rect.width, rect.height );
gdk_gc_destroy( gc );
gdk_draw_pixmap( ret.GetPixmap(), gc, GetPixmap(), rect.x, rect.y, 0, 0, rect.width, rect.height );
gdk_gc_destroy( gc );
}
else
{
GdkGC *gc = gdk_gc_new( ret.GetBitmap() );
gdk_draw_bitmap( ret.GetBitmap(), gc, GetBitmap(), rect.x, rect.y, 0, 0, rect.width, rect.height );
gdk_gc_destroy( gc );
gdk_draw_bitmap( ret.GetBitmap(), gc, GetBitmap(), rect.x, rect.y, 0, 0, rect.width, rect.height );
gdk_gc_destroy( gc );
}
if (GetMask())
@ -414,10 +414,10 @@ wxBitmap wxBitmap::GetSubBitmap( const wxRect& rect) const
mask->m_bitmap = gdk_pixmap_new( parent, rect.width, rect.height, 1 );
GdkGC *gc = gdk_gc_new( mask->m_bitmap );
gdk_draw_bitmap( mask->m_bitmap, gc, M_BMPDATA->m_mask->m_bitmap, 0, 0, rect.x, rect.y, rect.width, rect.height );
gdk_gc_destroy( gc );
gdk_draw_bitmap( mask->m_bitmap, gc, M_BMPDATA->m_mask->m_bitmap, 0, 0, rect.x, rect.y, rect.width, rect.height );
gdk_gc_destroy( gc );
ret.SetMask( mask );
ret.SetMask( mask );
}
return ret;

View File

@ -218,15 +218,15 @@ void wxBitmapButton::SetBitmap()
else
{
if (m_isSelected)
{
the_one = m_selected;
}
{
the_one = m_selected;
}
else
{
{
if (m_hasFocus)
the_one = m_focus;
the_one = m_focus;
else
the_one = m_bitmap;
the_one = m_bitmap;
}
}

View File

@ -77,7 +77,7 @@ bool wxButton::Create( wxWindow *parent, wxWindowID id, const wxString &label,
!CreateBase( parent, id, pos, size, style, validator, name ))
{
wxFAIL_MSG( wxT("wxButton creation failed") );
return FALSE;
return FALSE;
}
/*

View File

@ -77,7 +77,7 @@ bool wxCheckBox::Create(wxWindow *parent,
!CreateBase( parent, id, pos, size, style, validator, name ))
{
wxFAIL_MSG( wxT("wxCheckBox creation failed") );
return FALSE;
return FALSE;
}
wxControl::SetLabel( label );
@ -191,11 +191,11 @@ void wxCheckBox::OnInternalIdle()
if (GTK_TOGGLE_BUTTON(m_widgetCheckbox)->event_window && cursor.Ok())
{
/* I now set the cursor the anew in every OnInternalIdle call
as setting the cursor in a parent window also effects the
windows above so that checking for the current cursor is
not possible. */
as setting the cursor in a parent window also effects the
windows above so that checking for the current cursor is
not possible. */
gdk_window_set_cursor( GTK_TOGGLE_BUTTON(m_widgetCheckbox)->event_window, cursor.GetCursor() );
gdk_window_set_cursor( GTK_TOGGLE_BUTTON(m_widgetCheckbox)->event_window, cursor.GetCursor() );
}
UpdateWindowUI();

View File

@ -152,15 +152,18 @@ wxDataObject::wxDataObject()
bool wxDataObject::IsSupportedFormat(const wxDataFormat& format, Direction dir) const
{
size_t nFormatCount = GetFormatCount(dir);
if ( nFormatCount == 1 ) {
if ( nFormatCount == 1 )
{
return format == GetPreferredFormat();
}
else {
else
{
wxDataFormat *formats = new wxDataFormat[nFormatCount];
GetAllFormats(formats,dir);
size_t n;
for ( n = 0; n < nFormatCount; n++ ) {
for ( n = 0; n < nFormatCount; n++ )
{
if ( formats[n] == format )
break;
}

View File

@ -2776,8 +2776,7 @@ void wxWindow::WarpPointer( int x, int y )
void wxWindow::Refresh( bool eraseBackground, const wxRect *rect )
{
wxCHECK_RET( (m_widget != NULL), wxT("invalid window") );
if (!m_widget) return;
if (!m_widget->window) return;
if (eraseBackground && m_wxwindow && m_wxwindow->window)