wxRemotelyScrolledTreeCtrl now draws its own lines

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12847 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2001-12-03 21:29:50 +00:00
parent 74bcba0e33
commit 07c99b2608
5 changed files with 12 additions and 42 deletions

View File

@@ -10,7 +10,6 @@ class TestTree(wxRemotelyScrolledTreeCtrl):
style=wxTR_HAS_BUTTONS): style=wxTR_HAS_BUTTONS):
wxRemotelyScrolledTreeCtrl.__init__(self, parent, ID, pos, size, style) wxRemotelyScrolledTreeCtrl.__init__(self, parent, ID, pos, size, style)
##self.SetBackgroundColour("LIGHT BLUE") ##self.SetBackgroundColour("LIGHT BLUE")
EVT_PAINT(self, self.OnPaint)
# make an image list # make an image list
im1 = im2 = -1 im1 = im2 = -1
@@ -28,34 +27,6 @@ class TestTree(wxRemotelyScrolledTreeCtrl):
self.Expand(root) self.Expand(root)
def OnPaint(self, evt):
dc = wxPaintDC(self)
wxTreeCtrl.OnPaint(self, evt)
# Reset the device origin since it may have been set
dc.SetDeviceOrigin(0, 0)
pen = wxPen(wxSystemSettings_GetSystemColour(wxSYS_COLOUR_3DLIGHT), 1, wxSOLID)
dc.SetPen(pen)
dc.SetBrush(wxTRANSPARENT_BRUSH)
clientSize = self.GetClientSize()
cy = 0
h = self.GetFirstVisibleItem()
while h.Ok():
rect = self.GetBoundingRect(h)
if rect is not None:
cy = rect.GetTop()
dc.DrawLine(0, cy, clientSize.x, cy)
lastH = h
h = self.GetNextVisible(h)
rect = self.GetBoundingRect(lastH)
if rect is not None:
cy = rect.GetBottom()
dc.DrawLine(0, cy, clientSize.x, cy)
class TestValueWindow(wxTreeCompanionWindow): class TestValueWindow(wxTreeCompanionWindow):
@@ -99,7 +70,8 @@ class TestPanel(wxPanel):
style=wxNO_BORDER | wxCLIP_CHILDREN | wxVSCROLL) style=wxNO_BORDER | wxCLIP_CHILDREN | wxVSCROLL)
splitter = wxThinSplitterWindow(scroller, -1, style=wxSP_3DBORDER | wxCLIP_CHILDREN) splitter = wxThinSplitterWindow(scroller, -1, style=wxSP_3DBORDER | wxCLIP_CHILDREN)
splitter.SetSashSize(2) splitter.SetSashSize(2)
self.tree = TestTree(splitter, -1, style=wxTR_HAS_BUTTONS | wxTR_NO_LINES | wxNO_BORDER) self.tree = TestTree(splitter, -1, style =
wxTR_HAS_BUTTONS | wxTR_NO_LINES | wxTR_ROW_LINES | wxNO_BORDER )
valueWindow = TestValueWindow(splitter, -1, style=wxNO_BORDER) valueWindow = TestValueWindow(splitter, -1, style=wxNO_BORDER)
splitter.SplitVertically(self.tree, valueWindow) splitter.SplitVertically(self.tree, valueWindow)

View File

@@ -1274,8 +1274,6 @@ public:
return (val1,val2) return (val1,val2)
" "
// This seems pretty bogus, but is currently needed for SplitTree
void OnPaint(wxPaintEvent& event);
}; };

View File

@@ -5787,8 +5787,8 @@ static PyObject *_wrap_wxWindow_GetAcceleratorTable(PyObject *self, PyObject *ar
return _resultobj; return _resultobj;
} }
#define wxWindow_base_OnPaint(_swigobj,_swigarg0) (_swigobj->OnPaint(_swigarg0)) #define wxWindow_OnPaint(_swigobj,_swigarg0) (_swigobj->OnPaint(_swigarg0))
static PyObject *_wrap_wxWindow_base_OnPaint(PyObject *self, PyObject *args, PyObject *kwargs) { static PyObject *_wrap_wxWindow_OnPaint(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj; PyObject * _resultobj;
wxWindow * _arg0; wxWindow * _arg0;
wxPaintEvent * _arg1; wxPaintEvent * _arg1;
@@ -5797,25 +5797,25 @@ static PyObject *_wrap_wxWindow_base_OnPaint(PyObject *self, PyObject *args, PyO
char *_kwnames[] = { "self","event", NULL }; char *_kwnames[] = { "self","event", NULL };
self = self; self = self;
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxWindow_base_OnPaint",_kwnames,&_argo0,&_argo1)) if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxWindow_OnPaint",_kwnames,&_argo0,&_argo1))
return NULL; return NULL;
if (_argo0) { if (_argo0) {
if (_argo0 == Py_None) { _arg0 = NULL; } if (_argo0 == Py_None) { _arg0 = NULL; }
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) { else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxWindow_p")) {
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_base_OnPaint. Expected _wxWindow_p."); PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_OnPaint. Expected _wxWindow_p.");
return NULL; return NULL;
} }
} }
if (_argo1) { if (_argo1) {
if (_argo1 == Py_None) { _arg1 = NULL; } if (_argo1 == Py_None) { _arg1 = NULL; }
else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPaintEvent_p")) { else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxPaintEvent_p")) {
PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_base_OnPaint. Expected _wxPaintEvent_p."); PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_OnPaint. Expected _wxPaintEvent_p.");
return NULL; return NULL;
} }
} }
{ {
wxPy_BEGIN_ALLOW_THREADS; wxPy_BEGIN_ALLOW_THREADS;
wxWindow_base_OnPaint(_arg0,*_arg1); wxWindow_OnPaint(_arg0,*_arg1);
wxPy_END_ALLOW_THREADS; wxPy_END_ALLOW_THREADS;
if (PyErr_Occurred()) return NULL; if (PyErr_Occurred()) return NULL;
@@ -10599,7 +10599,7 @@ static PyMethodDef windowscMethods[] = {
{ "wxPanel_Create", (PyCFunction) _wrap_wxPanel_Create, METH_VARARGS | METH_KEYWORDS }, { "wxPanel_Create", (PyCFunction) _wrap_wxPanel_Create, METH_VARARGS | METH_KEYWORDS },
{ "new_wxPrePanel", (PyCFunction) _wrap_new_wxPrePanel, METH_VARARGS | METH_KEYWORDS }, { "new_wxPrePanel", (PyCFunction) _wrap_new_wxPrePanel, METH_VARARGS | METH_KEYWORDS },
{ "new_wxPanel", (PyCFunction) _wrap_new_wxPanel, METH_VARARGS | METH_KEYWORDS }, { "new_wxPanel", (PyCFunction) _wrap_new_wxPanel, METH_VARARGS | METH_KEYWORDS },
{ "wxWindow_base_OnPaint", (PyCFunction) _wrap_wxWindow_base_OnPaint, METH_VARARGS | METH_KEYWORDS }, { "wxWindow_OnPaint", (PyCFunction) _wrap_wxWindow_OnPaint, METH_VARARGS | METH_KEYWORDS },
{ "wxWindow_GetAcceleratorTable", (PyCFunction) _wrap_wxWindow_GetAcceleratorTable, METH_VARARGS | METH_KEYWORDS }, { "wxWindow_GetAcceleratorTable", (PyCFunction) _wrap_wxWindow_GetAcceleratorTable, METH_VARARGS | METH_KEYWORDS },
{ "wxWindow_SetAcceleratorTable", (PyCFunction) _wrap_wxWindow_SetAcceleratorTable, METH_VARARGS | METH_KEYWORDS }, { "wxWindow_SetAcceleratorTable", (PyCFunction) _wrap_wxWindow_SetAcceleratorTable, METH_VARARGS | METH_KEYWORDS },
{ "wxWindow_PrevControlId", (PyCFunction) _wrap_wxWindow_PrevControlId, METH_VARARGS | METH_KEYWORDS }, { "wxWindow_PrevControlId", (PyCFunction) _wrap_wxWindow_PrevControlId, METH_VARARGS | METH_KEYWORDS },

View File

@@ -556,8 +556,8 @@ class wxWindowPtr(wxEvtHandlerPtr):
val = apply(windowsc.wxWindow_GetAcceleratorTable,(self,) + _args, _kwargs) val = apply(windowsc.wxWindow_GetAcceleratorTable,(self,) + _args, _kwargs)
if val: val = wxAcceleratorTablePtr(val) if val: val = wxAcceleratorTablePtr(val)
return val return val
def base_OnPaint(self, *_args, **_kwargs): def OnPaint(self, *_args, **_kwargs):
val = apply(windowsc.wxWindow_base_OnPaint,(self,) + _args, _kwargs) val = apply(windowsc.wxWindow_OnPaint,(self,) + _args, _kwargs)
return val return val
def __repr__(self): def __repr__(self):
return "<C wxWindow instance at %s>" % (self.this,) return "<C wxWindow instance at %s>" % (self.this,)

View File

@@ -402,7 +402,7 @@ public:
wxAcceleratorTable *GetAcceleratorTable(); wxAcceleratorTable *GetAcceleratorTable();
#ifdef __WXMSW__ #ifdef __WXMSW__
// This seems pretty bogus, but is currently needed for SplitTree // A way to do the native draw first... Too bad it isn't in wxGTK too.
void OnPaint(wxPaintEvent& event); void OnPaint(wxPaintEvent& event);
#endif #endif
}; };