projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
more fixes to radio menu items: fixed Check() for them; allow separators inside the...
[wxWidgets.git]
/
src
/
generic
/
treectlg.cpp
diff --git
a/src/generic/treectlg.cpp
b/src/generic/treectlg.cpp
index d16901dee43b4357e014cfbd75def25711688673..ce148cd3012e029e15cb4d491a1a3697faa89450 100644
(file)
--- a/
src/generic/treectlg.cpp
+++ b/
src/generic/treectlg.cpp
@@
-368,7
+368,7
@@
void wxTreeTextCtrl::OnChar( wxKeyEvent &event )
if (!wxPendingDelete.Member(this))
wxPendingDelete.Append(this);
if (!wxPendingDelete.Member(this))
wxPendingDelete.Append(this);
-
+
m_finished = TRUE;
m_owner->SetFocus(); // This doesn't work. TODO.
m_finished = TRUE;
m_owner->SetFocus(); // This doesn't work. TODO.
@@
-424,7
+424,7
@@
void wxTreeTextCtrl::OnKillFocus( wxFocusEvent &event )
(*m_accept) = TRUE;
(*m_res) = GetValue();
(*m_accept) = TRUE;
(*m_res) = GetValue();
-
+
if ((*m_res) != m_startValue)
m_owner->OnRenameAccept();
}
if ((*m_res) != m_startValue)
m_owner->OnRenameAccept();
}
@@
-716,7
+716,7
@@
bool wxGenericTreeCtrl::Create(wxWindow *parent,
#ifdef __WXMAC__
int major,minor;
wxGetOsVersion( &major, &minor );
#ifdef __WXMAC__
int major,minor;
wxGetOsVersion( &major, &minor );
-
+
if (style & wxTR_HAS_BUTTONS) style |= wxTR_MAC_BUTTONS;
if (style & wxTR_HAS_BUTTONS) style &= ~wxTR_HAS_BUTTONS;
style &= ~wxTR_LINES_AT_ROOT;
if (style & wxTR_HAS_BUTTONS) style |= wxTR_MAC_BUTTONS;
if (style & wxTR_HAS_BUTTONS) style &= ~wxTR_HAS_BUTTONS;
style &= ~wxTR_LINES_AT_ROOT;
@@
-741,9
+741,9
@@
bool wxGenericTreeCtrl::Create(wxWindow *parent,
wxScrolledWindow::Create( parent, id, pos, size,
style|wxHSCROLL|wxVSCROLL, name );
wxScrolledWindow::Create( parent, id, pos, size,
style|wxHSCROLL|wxVSCROLL, name );
-
// If the tree display has no buttons, but does have
-
// connecting lines, we can use a narrower layout.
-
// It may not be a good idea to force this...
+ // If the tree display has no buttons, but does have
+ // connecting lines, we can use a narrower layout.
+ // It may not be a good idea to force this...
if (!HasButtons() && !HasFlag(wxTR_NO_LINES))
{
m_indent= 10;
if (!HasButtons() && !HasFlag(wxTR_NO_LINES))
{
m_indent= 10;
@@
-754,7
+754,8
@@
bool wxGenericTreeCtrl::Create(wxWindow *parent,
SetValidator( validator );
#endif
SetValidator( validator );
#endif
- SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_LISTBOX ) );
+ SetForegroundColour( wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT) );
+ SetBackgroundColour( wxSystemSettings::GetColour(wxSYS_COLOUR_LISTBOX) );
// m_dottedPen = wxPen( "grey", 0, wxDOT ); too slow under XFree86
m_dottedPen = wxPen( wxT("grey"), 0, 0 );
// m_dottedPen = wxPen( "grey", 0, wxDOT ); too slow under XFree86
m_dottedPen = wxPen( wxT("grey"), 0, 0 );
@@
-766,7
+767,7
@@
wxGenericTreeCtrl::~wxGenericTreeCtrl()
{
delete m_hilightBrush;
delete m_hilightUnfocusedBrush;
{
delete m_hilightBrush;
delete m_hilightUnfocusedBrush;
-
+
if (m_arrowRight) delete m_arrowRight;
if (m_arrowDown) delete m_arrowDown;
if (m_arrowRight) delete m_arrowRight;
if (m_arrowDown) delete m_arrowDown;
@@
-789,13
+790,13
@@
size_t wxGenericTreeCtrl::GetCount() const
void wxGenericTreeCtrl::SetIndent(unsigned int indent)
{
void wxGenericTreeCtrl::SetIndent(unsigned int indent)
{
- m_indent = indent;
+ m_indent =
(unsigned short)
indent;
m_dirty = TRUE;
}
void wxGenericTreeCtrl::SetSpacing(unsigned int spacing)
{
m_dirty = TRUE;
}
void wxGenericTreeCtrl::SetSpacing(unsigned int spacing)
{
- m_spacing = spacing;
+ m_spacing =
(unsigned short)
spacing;
m_dirty = TRUE;
}
m_dirty = TRUE;
}
@@
-2061,7
+2062,7
@@
void wxGenericTreeCtrl::PaintLevel( wxGenericTreeItem *item, wxDC &dc, int level
if (attr && attr->HasTextColour())
colText = attr->GetTextColour();
else
if (attr && attr->HasTextColour())
colText = attr->GetTextColour();
else
- colText =
wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT
);
+ colText =
GetForegroundColour(
);
}
// prepare to draw
}
// prepare to draw
@@
-2115,7
+2116,7
@@
void wxGenericTreeCtrl::PaintLevel( wxGenericTreeItem *item, wxDC &dc, int level
else if (HasFlag(wxTR_TWIST_BUTTONS))
{
// draw the twisty button here
else if (HasFlag(wxTR_TWIST_BUTTONS))
{
// draw the twisty button here
-
+
if (HasFlag(wxTR_AQUA_BUTTONS))
{
if (item->IsExpanded())
if (HasFlag(wxTR_AQUA_BUTTONS))
{
if (item->IsExpanded())
@@
-2542,14
+2543,8
@@
wxTreeItemId wxGenericTreeCtrl::HitTest(const wxPoint& point, int& flags)
return wxTreeItemId();
}
return wxTreeItemId();
}
- wxClientDC dc(this);
- PrepareDC(dc);
- wxCoord x = dc.DeviceToLogicalX( point.x );
- wxCoord y = dc.DeviceToLogicalY( point.y );
- wxGenericTreeItem *hit = m_anchor->HitTest(wxPoint(x, y),
- this,
- flags,
- 0 );
+ wxGenericTreeItem *hit = m_anchor->HitTest(CalcUnscrolledPosition(point),
+ this, flags, 0);
if (hit == NULL)
{
flags = wxTREE_HITTEST_NOWHERE;
if (hit == NULL)
{
flags = wxTREE_HITTEST_NOWHERE;
@@
-2600,10
+2595,10
@@
void wxGenericTreeCtrl::Edit( const wxTreeItemId& item )
if (m_dirty) wxYieldIfNeeded();
wxString s = m_currentEdit->GetText();
if (m_dirty) wxYieldIfNeeded();
wxString s = m_currentEdit->GetText();
- int x = m_currentEdit->GetX();
- int y = m_currentEdit->GetY();
int w = m_currentEdit->GetWidth();
int h = m_currentEdit->GetHeight();
int w = m_currentEdit->GetWidth();
int h = m_currentEdit->GetHeight();
+ int x, y;
+ CalcScrolledPosition(m_currentEdit->GetX(), m_currentEdit->GetY(), &x, &y);
int image_h = 0;
int image_w = 0;
int image_h = 0;
int image_w = 0;
@@
-2624,11
+2619,6
@@
void wxGenericTreeCtrl::Edit( const wxTreeItemId& item )
x += image_w;
w -= image_w + 4; // I don't know why +4 is needed
x += image_w;
w -= image_w + 4; // I don't know why +4 is needed
- wxClientDC dc(this);
- PrepareDC( dc );
- x = dc.LogicalToDeviceX( x );
- y = dc.LogicalToDeviceY( y );
-
wxTreeTextCtrl *text = new wxTreeTextCtrl(this, -1,
&m_renameAccept,
&m_renameRes,
wxTreeTextCtrl *text = new wxTreeTextCtrl(this, -1,
&m_renameAccept,
&m_renameRes,
@@
-2677,21
+2667,15
@@
void wxGenericTreeCtrl::OnMouse( wxMouseEvent &event )
return;
}
return;
}
- wxClientDC dc(this);
- PrepareDC(dc);
- wxCoord x = dc.DeviceToLogicalX( event.GetX() );
- wxCoord y = dc.DeviceToLogicalY( event.GetY() );
+ wxPoint pt = CalcUnscrolledPosition(event.GetPosition());
int flags = 0;
int flags = 0;
- wxGenericTreeItem *item = m_anchor->HitTest( wxPoint(x,y),
- this,
- flags,
- 0 );
+ wxGenericTreeItem *item = m_anchor->HitTest(pt, this, flags, 0);
if ( event.Dragging() && !m_isDragging )
{
if (m_dragCount == 0)
if ( event.Dragging() && !m_isDragging )
{
if (m_dragCount == 0)
- m_dragStart =
wxPoint(x,y)
;
+ m_dragStart =
pt
;
m_dragCount++;
m_dragCount++;
@@
-2768,7
+2752,7
@@
void wxGenericTreeCtrl::OnMouse( wxMouseEvent &event )
wxTreeEvent event(wxEVT_COMMAND_TREE_END_DRAG, GetId());
event.m_item = (long) item;
wxTreeEvent event(wxEVT_COMMAND_TREE_END_DRAG, GetId());
event.m_item = (long) item;
- event.m_pointDrag =
wxPoint(x, y)
;
+ event.m_pointDrag =
pt
;
event.SetEventObject(this);
(void)GetEventHandler()->ProcessEvent(event);
event.SetEventObject(this);
(void)GetEventHandler()->ProcessEvent(event);
@@
-2794,9
+2778,7
@@
void wxGenericTreeCtrl::OnMouse( wxMouseEvent &event )
{
wxTreeEvent nevent(wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK, GetId());
nevent.m_item = (long) item;
{
wxTreeEvent nevent(wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK, GetId());
nevent.m_item = (long) item;
- CalcScrolledPosition(x, y,
- &nevent.m_pointDrag.x,
- &nevent.m_pointDrag.y);
+ nevent.m_pointDrag = CalcScrolledPosition(pt);
nevent.SetEventObject(this);
GetEventHandler()->ProcessEvent(nevent);
}
nevent.SetEventObject(this);
GetEventHandler()->ProcessEvent(nevent);
}
@@
-2857,9
+2839,7
@@
void wxGenericTreeCtrl::OnMouse( wxMouseEvent &event )
// send activate event first
wxTreeEvent nevent( wxEVT_COMMAND_TREE_ITEM_ACTIVATED, GetId() );
nevent.m_item = (long) item;
// send activate event first
wxTreeEvent nevent( wxEVT_COMMAND_TREE_ITEM_ACTIVATED, GetId() );
nevent.m_item = (long) item;
- CalcScrolledPosition(x, y,
- &nevent.m_pointDrag.x,
- &nevent.m_pointDrag.y);
+ nevent.m_pointDrag = CalcScrolledPosition(pt);
nevent.SetEventObject( this );
if ( !GetEventHandler()->ProcessEvent( nevent ) )
{
nevent.SetEventObject( this );
if ( !GetEventHandler()->ProcessEvent( nevent ) )
{
@@
-2895,7
+2875,10
@@
void wxGenericTreeCtrl::CalculateSize( wxGenericTreeItem *item, wxDC &dc )
wxCoord text_w = 0;
wxCoord text_h = 0;
wxCoord text_w = 0;
wxCoord text_h = 0;
- if (item->IsBold())
+ wxTreeItemAttr *attr = item->GetAttributes();
+ if ( attr && attr->HasFont() )
+ dc.SetFont(attr->GetFont());
+ else if ( item->IsBold() )
dc.SetFont(m_boldFont);
dc.GetTextExtent( item->GetText(), &text_w, &text_h );
dc.SetFont(m_boldFont);
dc.GetTextExtent( item->GetText(), &text_w, &text_h );
@@
-2989,20
+2972,14
@@
void wxGenericTreeCtrl::RefreshSubtree(wxGenericTreeItem *item)
{
if (m_dirty) return;
{
if (m_dirty) return;
- wxClientDC dc(this);
- PrepareDC(dc);
-
- int cw = 0;
- int ch = 0;
- GetClientSize( &cw, &ch );
+ wxSize client = GetClientSize();
wxRect rect;
wxRect rect;
- rect.x = dc.LogicalToDeviceX( 0 );
- rect.width = cw;
- rect.y = dc.LogicalToDeviceY( item->GetY() );
- rect.height = ch;
+ CalcScrolledPosition(0, item->GetY(), &rect.x, &rect.y);
+ rect.width = client.x;
+ rect.height = client.y;
- Refresh(
TRUE, &rect
);
+ Refresh(
TRUE, &rect
);
AdjustMyScrollbars();
}
AdjustMyScrollbars();
}
@@
-3011,20
+2988,12
@@
void wxGenericTreeCtrl::RefreshLine( wxGenericTreeItem *item )
{
if (m_dirty) return;
{
if (m_dirty) return;
- wxClientDC dc(this);
- PrepareDC( dc );
-
- int cw = 0;
- int ch = 0;
- GetClientSize( &cw, &ch );
-
wxRect rect;
wxRect rect;
- rect.x = dc.LogicalToDeviceX( 0 );
- rect.y = dc.LogicalToDeviceY( item->GetY() );
- rect.width = cw;
+ CalcScrolledPosition(0, item->GetY(), &rect.x, &rect.y);
+ rect.width = GetClientSize().x;
rect.height = GetLineHeight(item); //dc.GetCharHeight() + 6;
rect.height = GetLineHeight(item); //dc.GetCharHeight() + 6;
- Refresh(
TRUE, &rect
);
+ Refresh(
TRUE, &rect
);
}
void wxGenericTreeCtrl::RefreshSelected()
}
void wxGenericTreeCtrl::RefreshSelected()