1) wxGTK now use the new, native implementation of wxTreeCtrl.
2) The treectrl sample uses the icons (not only under Windows). 3) A couple of minor changes in treectrl.cpp itself. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@785 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -6,7 +6,7 @@
|
|||||||
#elif defined(__WXMOTIF__)
|
#elif defined(__WXMOTIF__)
|
||||||
#include "wx/generic/treectrl.h"
|
#include "wx/generic/treectrl.h"
|
||||||
#elif defined(__WXGTK__)
|
#elif defined(__WXGTK__)
|
||||||
#include "wx/generic/treectrl.h"
|
#include "wx/gtk/treectrl.h"
|
||||||
#elif defined(__WXQT__)
|
#elif defined(__WXQT__)
|
||||||
#include "wx/qt/treectrl.h"
|
#include "wx/qt/treectrl.h"
|
||||||
#elif defined(__WXMAC__)
|
#elif defined(__WXMAC__)
|
||||||
|
44
samples/treectrl/icon1.xpm
Normal file
44
samples/treectrl/icon1.xpm
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
/* XPM */
|
||||||
|
static char *icon1_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"32 32 6 1",
|
||||||
|
" c Black",
|
||||||
|
". c Blue",
|
||||||
|
"X c #00bf00",
|
||||||
|
"o c Red",
|
||||||
|
"O c Yellow",
|
||||||
|
"+ c Gray100",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
" oooooo +++++++++++++++++++++++ ",
|
||||||
|
" oooooo +++++++++++++++++++++++ ",
|
||||||
|
" oooooo +++++++++++++++++++++++ ",
|
||||||
|
" oooooo +++++++++++++++++++++++ ",
|
||||||
|
" oooooo +++++++++++++++++++++++ ",
|
||||||
|
" oooooo +++++++++++++++++++++++ ",
|
||||||
|
" oooooo +++++++++++++++++++++++ ",
|
||||||
|
" ",
|
||||||
|
" ++++++ ++++++++++++++++++ .... ",
|
||||||
|
" ++++++ ++++++++++++++++++ .... ",
|
||||||
|
" ++++++ +++++++XXX++++++++ .... ",
|
||||||
|
" ++++++ ++++++X+XX++++++++ .... ",
|
||||||
|
" ++++++ +++++X++XX++++++++ .... ",
|
||||||
|
" ++++++ ++++++++XX++++++++ ",
|
||||||
|
" ++++++ ++++++++XX++++++++ ++++ ",
|
||||||
|
" ++++++ ++++++++XX++++++++ ++++ ",
|
||||||
|
" ++++++ ++++++++XX++++++++ ++++ ",
|
||||||
|
" ++++++ ++++++++XX++++++++ ++++ ",
|
||||||
|
" ++++++ ++++++++XX++++++++ ++++ ",
|
||||||
|
" ++++++ ++++++++++++++++++ ++++ ",
|
||||||
|
" ++++++ ++++++++++++++++++ ++++ ",
|
||||||
|
" ++++++ ++++++++++++++++++ ++++ ",
|
||||||
|
" ++++++ ++++++++++++++++++ ++++ ",
|
||||||
|
" ++++++ ++++ ",
|
||||||
|
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
|
||||||
|
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
|
||||||
|
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
|
||||||
|
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
|
||||||
|
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
|
||||||
|
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
|
||||||
|
" "
|
||||||
|
};
|
44
samples/treectrl/icon2.xpm
Normal file
44
samples/treectrl/icon2.xpm
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
/* XPM */
|
||||||
|
static char *icon2_xpm[] = {
|
||||||
|
/* columns rows colors chars-per-pixel */
|
||||||
|
"32 32 6 1",
|
||||||
|
" c Black",
|
||||||
|
". c Blue",
|
||||||
|
"X c #00bf00",
|
||||||
|
"o c Red",
|
||||||
|
"O c Yellow",
|
||||||
|
"+ c Gray100",
|
||||||
|
/* pixels */
|
||||||
|
" ",
|
||||||
|
" oooooo +++++++++++++++++++++++ ",
|
||||||
|
" oooooo +++++++++++++++++++++++ ",
|
||||||
|
" oooooo +++++++++++++++++++++++ ",
|
||||||
|
" oooooo +++++++++++++++++++++++ ",
|
||||||
|
" oooooo +++++++++++++++++++++++ ",
|
||||||
|
" oooooo +++++++++++++++++++++++ ",
|
||||||
|
" oooooo +++++++++++++++++++++++ ",
|
||||||
|
" ",
|
||||||
|
" ++++++ ++++++++++++++++++ .... ",
|
||||||
|
" ++++++ ++++++++++++++++++ .... ",
|
||||||
|
" ++++++ ++++++++++++++++++ .... ",
|
||||||
|
" ++++++ +++++XXXXXX+++++++ .... ",
|
||||||
|
" ++++++ ++++X++++++X++++++ .... ",
|
||||||
|
" ++++++ +++++++++++X++++++ ",
|
||||||
|
" ++++++ ++++++++++X+++++++ ++++ ",
|
||||||
|
" ++++++ ++++++++XX++++++++ ++++ ",
|
||||||
|
" ++++++ +++++++XX+++++++++ ++++ ",
|
||||||
|
" ++++++ ++++++X+++++++++++ ++++ ",
|
||||||
|
" ++++++ +++++X++++++++++++ ++++ ",
|
||||||
|
" ++++++ +++++XXXXXXXX+++++ ++++ ",
|
||||||
|
" ++++++ ++++++++++++++++++ ++++ ",
|
||||||
|
" ++++++ ++++++++++++++++++ ++++ ",
|
||||||
|
" ++++++ ++++++++++++++++++ ++++ ",
|
||||||
|
" ++++++ ++++ ",
|
||||||
|
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
|
||||||
|
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
|
||||||
|
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
|
||||||
|
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
|
||||||
|
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
|
||||||
|
" ++++++ OOOOOOOOOOOO XXXXX ++++ ",
|
||||||
|
" "
|
||||||
|
};
|
@@ -25,7 +25,9 @@
|
|||||||
#include "wx/wx.h"
|
#include "wx/wx.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __WXGTK__
|
#ifndef __WXMSW__
|
||||||
|
#include "icon1.xpm"
|
||||||
|
#include "icon2.xpm"
|
||||||
#include "mondrian.xpm"
|
#include "mondrian.xpm"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -56,7 +58,7 @@ END_EVENT_TABLE()
|
|||||||
IMPLEMENT_APP(MyApp)
|
IMPLEMENT_APP(MyApp)
|
||||||
|
|
||||||
// `Main program' equivalent, creating windows and returning main app frame
|
// `Main program' equivalent, creating windows and returning main app frame
|
||||||
bool MyApp::OnInit(void)
|
bool MyApp::OnInit()
|
||||||
{
|
{
|
||||||
// Create the main frame window
|
// Create the main frame window
|
||||||
MyFrame *frame = new MyFrame((wxFrame *) NULL, (char *) "wxTreeCtrl Test", 50, 50, 450, 340);
|
MyFrame *frame = new MyFrame((wxFrame *) NULL, (char *) "wxTreeCtrl Test", 50, 50, 450, 340);
|
||||||
@@ -67,22 +69,13 @@ bool MyApp::OnInit(void)
|
|||||||
frame->SetBackgroundColour(wxColour(255, 255, 255));
|
frame->SetBackgroundColour(wxColour(255, 255, 255));
|
||||||
|
|
||||||
// Give it an icon
|
// Give it an icon
|
||||||
#ifdef __WXMSW__
|
frame->SetIcon(wxICON(mondrian));
|
||||||
frame->SetIcon(wxIcon("mondrian"));
|
|
||||||
#else
|
|
||||||
frame->SetIcon(wxIcon(mondrian_xpm));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Make an image list containing small icons
|
// Make an image list containing small icons
|
||||||
m_imageListNormal = new wxImageList(16, 16, TRUE);
|
m_imageListNormal = new wxImageList(16, 16, TRUE);
|
||||||
|
|
||||||
#ifdef __WXMSW__
|
m_imageListNormal->Add(wxICON(icon1));
|
||||||
wxIcon icon1("icon1", wxBITMAP_TYPE_ICO_RESOURCE);
|
m_imageListNormal->Add(wxICON(icon2));
|
||||||
m_imageListNormal->Add(icon1);
|
|
||||||
wxIcon icon2("icon2", wxBITMAP_TYPE_ICO_RESOURCE);
|
|
||||||
m_imageListNormal->Add(icon2);
|
|
||||||
#else
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Make a menubar
|
// Make a menubar
|
||||||
wxMenu *file_menu = new wxMenu;
|
wxMenu *file_menu = new wxMenu;
|
||||||
@@ -161,7 +154,7 @@ MyFrame::MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h):
|
|||||||
m_logWindow = (wxTextCtrl *) NULL;
|
m_logWindow = (wxTextCtrl *) NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
MyFrame::~MyFrame(void)
|
MyFrame::~MyFrame()
|
||||||
{
|
{
|
||||||
delete wxGetApp().m_imageListNormal;
|
delete wxGetApp().m_imageListNormal;
|
||||||
}
|
}
|
||||||
|
@@ -108,6 +108,7 @@ LIB_CPP_SRC=\
|
|||||||
gtk/tbargtk.cpp \
|
gtk/tbargtk.cpp \
|
||||||
gtk/textctrl.cpp \
|
gtk/textctrl.cpp \
|
||||||
gtk/timer.cpp \
|
gtk/timer.cpp \
|
||||||
|
gtk/treectrl.cpp \
|
||||||
gtk/utilsgtk.cpp \
|
gtk/utilsgtk.cpp \
|
||||||
gtk/utilsres.cpp \
|
gtk/utilsres.cpp \
|
||||||
gtk/window.cpp \
|
gtk/window.cpp \
|
||||||
@@ -128,8 +129,7 @@ LIB_CPP_SRC=\
|
|||||||
generic/splitter.cpp \
|
generic/splitter.cpp \
|
||||||
generic/statusbr.cpp \
|
generic/statusbr.cpp \
|
||||||
generic/tabg.cpp \
|
generic/tabg.cpp \
|
||||||
generic/textdlgg.cpp \
|
generic/textdlgg.cpp
|
||||||
generic/treectrl.cpp
|
|
||||||
|
|
||||||
|
|
||||||
LIB_C_SRC=\
|
LIB_C_SRC=\
|
||||||
|
@@ -40,7 +40,8 @@ static void gtk_treeitem_expand_callback(GtkWidget *WXUNUSED(widget), wxTreeItem
|
|||||||
static void gtk_treeitem_collapse_callback( GtkWidget *WXUNUSED(widget), wxTreeItem *treeitem);
|
static void gtk_treeitem_collapse_callback( GtkWidget *WXUNUSED(widget), wxTreeItem *treeitem);
|
||||||
static void gtk_treeitem_select_callback( GtkWidget *WXUNUSED(widget), wxTreeItem *treeitem);
|
static void gtk_treeitem_select_callback( GtkWidget *WXUNUSED(widget), wxTreeItem *treeitem);
|
||||||
|
|
||||||
static void gtk_treeitem_expand_callback(GtkWidget *widget, wxTreeItem *treeitem) {
|
static void gtk_treeitem_expand_callback(GtkWidget *widget, wxTreeItem *treeitem)
|
||||||
|
{
|
||||||
wxTreeCtrl *owner = (wxTreeCtrl *)gtk_object_get_data(GTK_OBJECT(widget), "owner");
|
wxTreeCtrl *owner = (wxTreeCtrl *)gtk_object_get_data(GTK_OBJECT(widget), "owner");
|
||||||
if (owner == NULL)
|
if (owner == NULL)
|
||||||
return;
|
return;
|
||||||
@@ -50,7 +51,8 @@ static void gtk_treeitem_expand_callback(GtkWidget *widget, wxTreeItem *treeitem
|
|||||||
owner->SendExpanded(id);
|
owner->SendExpanded(id);
|
||||||
};
|
};
|
||||||
|
|
||||||
static void gtk_treeitem_collapse_callback(GtkWidget *widget, wxTreeItem *treeitem) {
|
static void gtk_treeitem_collapse_callback(GtkWidget *widget, wxTreeItem *treeitem)
|
||||||
|
{
|
||||||
wxTreeCtrl *owner = (wxTreeCtrl *)gtk_object_get_data(GTK_OBJECT(widget), "owner");
|
wxTreeCtrl *owner = (wxTreeCtrl *)gtk_object_get_data(GTK_OBJECT(widget), "owner");
|
||||||
if (owner == NULL)
|
if (owner == NULL)
|
||||||
return;
|
return;
|
||||||
@@ -60,7 +62,8 @@ static void gtk_treeitem_collapse_callback(GtkWidget *widget, wxTreeItem *treeit
|
|||||||
owner->SendCollapsed(id);
|
owner->SendCollapsed(id);
|
||||||
};
|
};
|
||||||
|
|
||||||
static void gtk_treeitem_select_callback(GtkWidget *widget, wxTreeItem *treeitem) {
|
static void gtk_treeitem_select_callback(GtkWidget *widget, wxTreeItem *treeitem)
|
||||||
|
{
|
||||||
wxTreeCtrl *owner = (wxTreeCtrl *)gtk_object_get_data(GTK_OBJECT(widget), "owner");
|
wxTreeCtrl *owner = (wxTreeCtrl *)gtk_object_get_data(GTK_OBJECT(widget), "owner");
|
||||||
if (owner == NULL)
|
if (owner == NULL)
|
||||||
return;
|
return;
|
||||||
@@ -73,10 +76,10 @@ static void gtk_treeitem_select_callback(GtkWidget *widget, wxTreeItem *treeitem
|
|||||||
#if !USE_SHARED_LIBRARY
|
#if !USE_SHARED_LIBRARY
|
||||||
IMPLEMENT_DYNAMIC_CLASS(wxTreeCtrl, wxControl)
|
IMPLEMENT_DYNAMIC_CLASS(wxTreeCtrl, wxControl)
|
||||||
IMPLEMENT_DYNAMIC_CLASS(wxTreeItem, wxObject)
|
IMPLEMENT_DYNAMIC_CLASS(wxTreeItem, wxObject)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
wxTreeCtrl::wxTreeCtrl(void) {
|
wxTreeCtrl::wxTreeCtrl()
|
||||||
|
{
|
||||||
m_imageListNormal = NULL;
|
m_imageListNormal = NULL;
|
||||||
m_imageListState = NULL;
|
m_imageListState = NULL;
|
||||||
m_textCtrl = NULL;
|
m_textCtrl = NULL;
|
||||||
@@ -120,7 +123,6 @@ bool wxTreeCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, con
|
|||||||
m_tree = GTK_TREE(gtk_tree_new());
|
m_tree = GTK_TREE(gtk_tree_new());
|
||||||
|
|
||||||
gtk_container_add(GTK_CONTAINER(m_widget), GTK_WIDGET(m_tree));
|
gtk_container_add(GTK_CONTAINER(m_widget), GTK_WIDGET(m_tree));
|
||||||
gtk_widget_set_parent(GTK_WIDGET(m_tree), m_widget);
|
|
||||||
gtk_widget_show(GTK_WIDGET(m_tree));
|
gtk_widget_show(GTK_WIDGET(m_tree));
|
||||||
|
|
||||||
wxSystemSettings settings;
|
wxSystemSettings settings;
|
||||||
@@ -139,13 +141,14 @@ bool wxTreeCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, con
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxTreeCtrl::~wxTreeCtrl(void) {
|
wxTreeCtrl::~wxTreeCtrl()
|
||||||
if (m_textCtrl)
|
{
|
||||||
delete m_textCtrl;
|
wxDELETE(m_textCtrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Attributes
|
// Attributes
|
||||||
static void gtk_treectrl_count_callback (GtkWidget *widget, gpointer data) {
|
static void gtk_treectrl_count_callback (GtkWidget *widget, gpointer data)
|
||||||
|
{
|
||||||
int count = (*((int *)data));
|
int count = (*((int *)data));
|
||||||
|
|
||||||
count++;
|
count++;
|
||||||
@@ -153,7 +156,8 @@ static void gtk_treectrl_count_callback (GtkWidget *widget, gpointer data) {
|
|||||||
gtk_container_foreach(GTK_CONTAINER(widget), gtk_treectrl_count_callback, data);
|
gtk_container_foreach(GTK_CONTAINER(widget), gtk_treectrl_count_callback, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
int wxTreeCtrl::GetCount(void) const {
|
int wxTreeCtrl::GetCount() const
|
||||||
|
{
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
||||||
if (m_anchor != NULL)
|
if (m_anchor != NULL)
|
||||||
@@ -161,15 +165,18 @@ int wxTreeCtrl::GetCount(void) const {
|
|||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
int wxTreeCtrl::GetIndent(void) const {
|
int wxTreeCtrl::GetIndent() const
|
||||||
|
{
|
||||||
return m_tree->indent_value;
|
return m_tree->indent_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTreeCtrl::SetIndent(int indent) {
|
void wxTreeCtrl::SetIndent(int indent)
|
||||||
|
{
|
||||||
m_tree->indent_value = indent;
|
m_tree->indent_value = indent;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxImageList *wxTreeCtrl::GetImageList(int which) const {
|
wxImageList *wxTreeCtrl::GetImageList(int which) const
|
||||||
|
{
|
||||||
if (which == wxIMAGE_LIST_NORMAL) {
|
if (which == wxIMAGE_LIST_NORMAL) {
|
||||||
return m_imageListNormal;
|
return m_imageListNormal;
|
||||||
}
|
}
|
||||||
@@ -180,7 +187,8 @@ wxImageList *wxTreeCtrl::GetImageList(int which) const {
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTreeCtrl::SetImageList(wxImageList *imageList, int which) {
|
void wxTreeCtrl::SetImageList(wxImageList *imageList, int which)
|
||||||
|
{
|
||||||
if (which == wxIMAGE_LIST_NORMAL)
|
if (which == wxIMAGE_LIST_NORMAL)
|
||||||
m_imageListNormal = imageList;
|
m_imageListNormal = imageList;
|
||||||
else
|
else
|
||||||
@@ -188,7 +196,8 @@ void wxTreeCtrl::SetImageList(wxImageList *imageList, int which) {
|
|||||||
m_imageListState = imageList;
|
m_imageListState = imageList;
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxTreeCtrl::GetNextItem(long item, int code) const {
|
long wxTreeCtrl::GetNextItem(long item, int code) const
|
||||||
|
{
|
||||||
switch (code) {
|
switch (code) {
|
||||||
case wxTREE_NEXT_CARET:
|
case wxTREE_NEXT_CARET:
|
||||||
// flag = TVGN_CARET;
|
// flag = TVGN_CARET;
|
||||||
@@ -228,7 +237,8 @@ long wxTreeCtrl::GetNextItem(long item, int code) const {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::ItemHasChildren(long item) const {
|
bool wxTreeCtrl::ItemHasChildren(long item) const
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
||||||
@@ -239,7 +249,8 @@ bool wxTreeCtrl::ItemHasChildren(long item) const {
|
|||||||
return (count != 0);
|
return (count != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static GtkTreeItem *findItem(GtkTreeItem *p, long id) {
|
static GtkTreeItem *findItem(GtkTreeItem *p, long id)
|
||||||
|
{
|
||||||
GtkTreeItem *q;
|
GtkTreeItem *q;
|
||||||
|
|
||||||
if (((long)gtk_object_get_data(GTK_OBJECT(p), "id")) == id)
|
if (((long)gtk_object_get_data(GTK_OBJECT(p), "id")) == id)
|
||||||
@@ -266,11 +277,13 @@ static GtkTreeItem *findItem(GtkTreeItem *p, long id) {
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
GtkTreeItem *wxTreeCtrl::findGtkTreeItem(long id) const {
|
GtkTreeItem *wxTreeCtrl::findGtkTreeItem(long id) const
|
||||||
|
{
|
||||||
return findItem(m_anchor, id);
|
return findItem(m_anchor, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxTreeCtrl::GetChild(long item) const {
|
long wxTreeCtrl::GetChild(long item) const
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
GtkTreeItem *next = NULL;
|
GtkTreeItem *next = NULL;
|
||||||
|
|
||||||
@@ -284,7 +297,8 @@ long wxTreeCtrl::GetChild(long item) const {
|
|||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxTreeCtrl::GetParent(long item) const {
|
long wxTreeCtrl::GetParent(long item) const
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
|
|
||||||
p = findGtkTreeItem(item);
|
p = findGtkTreeItem(item);
|
||||||
@@ -294,7 +308,8 @@ long wxTreeCtrl::GetParent(long item) const {
|
|||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxTreeCtrl::GetFirstVisibleItem(void) const {
|
long wxTreeCtrl::GetFirstVisibleItem() const
|
||||||
|
{
|
||||||
GtkTreeItem *next = NULL;
|
GtkTreeItem *next = NULL;
|
||||||
|
|
||||||
GList *list = gtk_container_children(GTK_CONTAINER(m_anchor));
|
GList *list = gtk_container_children(GTK_CONTAINER(m_anchor));
|
||||||
@@ -307,7 +322,8 @@ long wxTreeCtrl::GetFirstVisibleItem(void) const {
|
|||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxTreeCtrl::GetNextVisibleItem(long item) const {
|
long wxTreeCtrl::GetNextVisibleItem(long item) const
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
GtkTreeItem *next = NULL;
|
GtkTreeItem *next = NULL;
|
||||||
|
|
||||||
@@ -322,7 +338,8 @@ long wxTreeCtrl::GetNextVisibleItem(long item) const {
|
|||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxTreeCtrl::GetSelection(void) const {
|
long wxTreeCtrl::GetSelection() const
|
||||||
|
{
|
||||||
GtkTreeItem *next = NULL;
|
GtkTreeItem *next = NULL;
|
||||||
|
|
||||||
GList *list = gtk_container_children(GTK_CONTAINER(m_anchor));
|
GList *list = gtk_container_children(GTK_CONTAINER(m_anchor));
|
||||||
@@ -335,17 +352,19 @@ long wxTreeCtrl::GetSelection(void) const {
|
|||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxTreeCtrl::GetRootItem(void) const {
|
long wxTreeCtrl::GetRootItem() const
|
||||||
|
{
|
||||||
return (long)gtk_object_get_data(GTK_OBJECT(m_anchor), "id");
|
return (long)gtk_object_get_data(GTK_OBJECT(m_anchor), "id");
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::GetItem(wxTreeItem& info) const {
|
bool wxTreeCtrl::GetItem(wxTreeItem& info) const
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
|
|
||||||
p = findGtkTreeItem(info.m_itemId);
|
p = findGtkTreeItem(info.m_itemId);
|
||||||
|
|
||||||
if (p == NULL) {
|
if (p == NULL) {
|
||||||
wxLogSysError("TreeCtrl::GetItem failed");
|
wxLogError("TreeCtrl::GetItem failed.");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -354,13 +373,14 @@ bool wxTreeCtrl::GetItem(wxTreeItem& info) const {
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::SetItem(wxTreeItem& info) {
|
bool wxTreeCtrl::SetItem(wxTreeItem& info)
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
|
|
||||||
p = findGtkTreeItem(info.m_itemId);
|
p = findGtkTreeItem(info.m_itemId);
|
||||||
|
|
||||||
if (p == NULL) {
|
if (p == NULL) {
|
||||||
wxLogSysError("TreeCtrl::SetItem failed");
|
wxLogError("TreeCtrl::SetItem failed.");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -369,7 +389,8 @@ bool wxTreeCtrl::SetItem(wxTreeItem& info) {
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
int wxTreeCtrl::GetItemState(long item, long stateMask) const {
|
int wxTreeCtrl::GetItemState(long item, long stateMask) const
|
||||||
|
{
|
||||||
wxTreeItem info;
|
wxTreeItem info;
|
||||||
|
|
||||||
info.m_mask = wxTREE_MASK_STATE ;
|
info.m_mask = wxTREE_MASK_STATE ;
|
||||||
@@ -382,7 +403,8 @@ int wxTreeCtrl::GetItemState(long item, long stateMask) const {
|
|||||||
return info.m_state;
|
return info.m_state;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::SetItemState(long item, long state, long stateMask) {
|
bool wxTreeCtrl::SetItemState(long item, long state, long stateMask)
|
||||||
|
{
|
||||||
wxTreeItem info;
|
wxTreeItem info;
|
||||||
|
|
||||||
info.m_mask = wxTREE_MASK_STATE ;
|
info.m_mask = wxTREE_MASK_STATE ;
|
||||||
@@ -393,7 +415,8 @@ bool wxTreeCtrl::SetItemState(long item, long state, long stateMask) {
|
|||||||
return SetItem(info);
|
return SetItem(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::SetItemImage(long item, int image, int selImage) {
|
bool wxTreeCtrl::SetItemImage(long item, int image, int selImage)
|
||||||
|
{
|
||||||
wxTreeItem info;
|
wxTreeItem info;
|
||||||
|
|
||||||
info.m_mask = wxTREE_MASK_IMAGE ;
|
info.m_mask = wxTREE_MASK_IMAGE ;
|
||||||
@@ -407,7 +430,8 @@ bool wxTreeCtrl::SetItemImage(long item, int image, int selImage) {
|
|||||||
return SetItem(info);
|
return SetItem(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
wxString wxTreeCtrl::GetItemText(long item) const {
|
wxString wxTreeCtrl::GetItemText(long item) const
|
||||||
|
{
|
||||||
wxTreeItem info;
|
wxTreeItem info;
|
||||||
|
|
||||||
info.m_mask = wxTREE_MASK_TEXT ;
|
info.m_mask = wxTREE_MASK_TEXT ;
|
||||||
@@ -418,7 +442,8 @@ wxString wxTreeCtrl::GetItemText(long item) const {
|
|||||||
return info.m_text;
|
return info.m_text;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTreeCtrl::SetItemText(long item, const wxString& str) {
|
void wxTreeCtrl::SetItemText(long item, const wxString& str)
|
||||||
|
{
|
||||||
wxTreeItem info;
|
wxTreeItem info;
|
||||||
|
|
||||||
info.m_mask = wxTREE_MASK_TEXT ;
|
info.m_mask = wxTREE_MASK_TEXT ;
|
||||||
@@ -428,7 +453,8 @@ void wxTreeCtrl::SetItemText(long item, const wxString& str) {
|
|||||||
SetItem(info);
|
SetItem(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxTreeCtrl::GetItemData(long item) const {
|
long wxTreeCtrl::GetItemData(long item) const
|
||||||
|
{
|
||||||
wxTreeItem info;
|
wxTreeItem info;
|
||||||
|
|
||||||
info.m_mask = wxTREE_MASK_DATA ;
|
info.m_mask = wxTREE_MASK_DATA ;
|
||||||
@@ -439,7 +465,8 @@ long wxTreeCtrl::GetItemData(long item) const {
|
|||||||
return info.m_data;
|
return info.m_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::SetItemData(long item, long data) {
|
bool wxTreeCtrl::SetItemData(long item, long data)
|
||||||
|
{
|
||||||
wxTreeItem info;
|
wxTreeItem info;
|
||||||
|
|
||||||
info.m_mask = wxTREE_MASK_DATA ;
|
info.m_mask = wxTREE_MASK_DATA ;
|
||||||
@@ -449,7 +476,8 @@ bool wxTreeCtrl::SetItemData(long item, long data) {
|
|||||||
return SetItem(info);
|
return SetItem(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::GetItemRect(long item, wxRectangle& rect, bool textOnly) const {
|
bool wxTreeCtrl::GetItemRect(long item, wxRectangle& rect, bool textOnly) const
|
||||||
|
{
|
||||||
/*
|
/*
|
||||||
RECT rect2;
|
RECT rect2;
|
||||||
|
|
||||||
@@ -463,15 +491,19 @@ bool wxTreeCtrl::GetItemRect(long item, wxRectangle& rect, bool textOnly) const
|
|||||||
rect.height = rect2.bottom - rect2.left;
|
rect.height = rect2.bottom - rect2.left;
|
||||||
return success;
|
return success;
|
||||||
*/
|
*/
|
||||||
|
wxFAIL_MSG("Not implemented");
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxTextCtrl* wxTreeCtrl::GetEditControl(void) const {
|
wxTextCtrl* wxTreeCtrl::GetEditControl() const
|
||||||
|
{
|
||||||
return m_textCtrl;
|
return m_textCtrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Operations
|
// Operations
|
||||||
bool wxTreeCtrl::DeleteItem(long item) {
|
bool wxTreeCtrl::DeleteItem(long item)
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
|
|
||||||
p = findGtkTreeItem(item);
|
p = findGtkTreeItem(item);
|
||||||
@@ -487,7 +519,8 @@ bool wxTreeCtrl::DeleteItem(long item) {
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::DeleteChildren(long item) {
|
bool wxTreeCtrl::DeleteChildren(long item)
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
|
|
||||||
p = findGtkTreeItem(item);
|
p = findGtkTreeItem(item);
|
||||||
@@ -499,7 +532,8 @@ bool wxTreeCtrl::DeleteChildren(long item) {
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::ExpandItem(long item, int action) {
|
bool wxTreeCtrl::ExpandItem(long item, int action)
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
|
|
||||||
p = findGtkTreeItem(item);
|
p = findGtkTreeItem(item);
|
||||||
@@ -535,7 +569,8 @@ bool wxTreeCtrl::ExpandItem(long item, int action) {
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxTreeCtrl::InsertItem(long parent, wxTreeItem& info, long insertAfter) {
|
long wxTreeCtrl::InsertItem(long parent, wxTreeItem& info, long insertAfter)
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
GtkTreeItem *item = NULL;
|
GtkTreeItem *item = NULL;
|
||||||
|
|
||||||
@@ -599,7 +634,8 @@ long wxTreeCtrl::InsertItem(long parent, const wxString& label, int image,
|
|||||||
return InsertItem(parent, info, insertAfter);
|
return InsertItem(parent, info, insertAfter);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::SelectItem(long item) {
|
bool wxTreeCtrl::SelectItem(long item)
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
|
|
||||||
p = findGtkTreeItem(item);
|
p = findGtkTreeItem(item);
|
||||||
@@ -610,16 +646,21 @@ bool wxTreeCtrl::SelectItem(long item) {
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::ScrollTo(long item) {
|
bool wxTreeCtrl::ScrollTo(long item)
|
||||||
|
{
|
||||||
|
wxFAIL_MSG("Not implemented");
|
||||||
|
|
||||||
return FALSE; // Still unimplemented
|
return FALSE; // Still unimplemented
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::DeleteAllItems(void) {
|
bool wxTreeCtrl::DeleteAllItems()
|
||||||
|
{
|
||||||
gtk_tree_item_remove_subtree(m_anchor);
|
gtk_tree_item_remove_subtree(m_anchor);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxTextCtrl* wxTreeCtrl::EditLabel(long item, wxClassInfo* textControlClass) {
|
wxTextCtrl* wxTreeCtrl::EditLabel(long item, wxClassInfo* textControlClass)
|
||||||
|
{
|
||||||
wxASSERT( (textControlClass->IsKindOf(CLASSINFO(wxTextCtrl))) );
|
wxASSERT( (textControlClass->IsKindOf(CLASSINFO(wxTextCtrl))) );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -638,11 +679,14 @@ wxTextCtrl* wxTreeCtrl::EditLabel(long item, wxClassInfo* textControlClass) {
|
|||||||
m_textCtrl->SubclassWin((WXHWND) hWnd);
|
m_textCtrl->SubclassWin((WXHWND) hWnd);
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
wxFAIL_MSG("Not implemented");
|
||||||
|
|
||||||
return m_textCtrl;
|
return m_textCtrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// End label editing, optionally cancelling the edit
|
// End label editing, optionally cancelling the edit
|
||||||
bool wxTreeCtrl::EndEditLabel(bool cancel) {
|
bool wxTreeCtrl::EndEditLabel(bool cancel)
|
||||||
|
{
|
||||||
/*
|
/*
|
||||||
bool success = (TreeView_EndEditLabelNow((HWND) GetHWND(), cancel) != 0);
|
bool success = (TreeView_EndEditLabelNow((HWND) GetHWND(), cancel) != 0);
|
||||||
|
|
||||||
@@ -655,10 +699,13 @@ bool wxTreeCtrl::EndEditLabel(bool cancel) {
|
|||||||
}
|
}
|
||||||
return success;
|
return success;
|
||||||
*/
|
*/
|
||||||
|
wxFAIL_MSG("Not implemented");
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxTreeCtrl::HitTest(const wxPoint& point, int& flags) {
|
long wxTreeCtrl::HitTest(const wxPoint& point, int& flags)
|
||||||
|
{
|
||||||
/*
|
/*
|
||||||
TV_HITTESTINFO hitTestInfo;
|
TV_HITTESTINFO hitTestInfo;
|
||||||
hitTestInfo.pt.x = (int) point.x;
|
hitTestInfo.pt.x = (int) point.x;
|
||||||
@@ -692,6 +739,8 @@ long wxTreeCtrl::HitTest(const wxPoint& point, int& flags) {
|
|||||||
|
|
||||||
return (long) hitTestInfo.hItem ;
|
return (long) hitTestInfo.hItem ;
|
||||||
*/
|
*/
|
||||||
|
wxFAIL_MSG("Not implemented");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -701,52 +750,65 @@ wxImageList *wxTreeCtrl::CreateDragImage(long item)
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool wxTreeCtrl::SortChildren(long item) {
|
bool wxTreeCtrl::SortChildren(long item)
|
||||||
|
{
|
||||||
|
wxFAIL_MSG("Not implemented");
|
||||||
|
|
||||||
return FALSE; // Still unimplemented
|
return FALSE; // Still unimplemented
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::EnsureVisible(long item) {
|
bool wxTreeCtrl::EnsureVisible(long item)
|
||||||
|
{
|
||||||
|
wxFAIL_MSG("Not implemented");
|
||||||
|
|
||||||
return FALSE; // Still unimplemented
|
return FALSE; // Still unimplemented
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTreeCtrl::SendExpanding(long item) {
|
void wxTreeCtrl::SendExpanding(long item)
|
||||||
|
{
|
||||||
wxTreeEvent event(wxEVT_COMMAND_TREE_ITEM_EXPANDING, GetId());
|
wxTreeEvent event(wxEVT_COMMAND_TREE_ITEM_EXPANDING, GetId());
|
||||||
event.SetEventObject(this);
|
event.SetEventObject(this);
|
||||||
ProcessEvent(event);
|
ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTreeCtrl::SendExpanded(long item) {
|
void wxTreeCtrl::SendExpanded(long item)
|
||||||
|
{
|
||||||
wxTreeEvent event(wxEVT_COMMAND_TREE_ITEM_EXPANDED, GetId());
|
wxTreeEvent event(wxEVT_COMMAND_TREE_ITEM_EXPANDED, GetId());
|
||||||
event.SetEventObject(this);
|
event.SetEventObject(this);
|
||||||
ProcessEvent(event);
|
ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTreeCtrl::SendCollapsing(long item) {
|
void wxTreeCtrl::SendCollapsing(long item)
|
||||||
|
{
|
||||||
wxTreeEvent event(wxEVT_COMMAND_TREE_ITEM_COLLAPSING, GetId());
|
wxTreeEvent event(wxEVT_COMMAND_TREE_ITEM_COLLAPSING, GetId());
|
||||||
event.SetEventObject(this);
|
event.SetEventObject(this);
|
||||||
ProcessEvent(event);
|
ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTreeCtrl::SendCollapsed(long item) {
|
void wxTreeCtrl::SendCollapsed(long item)
|
||||||
|
{
|
||||||
wxTreeEvent event(wxEVT_COMMAND_TREE_ITEM_COLLAPSED, GetId());
|
wxTreeEvent event(wxEVT_COMMAND_TREE_ITEM_COLLAPSED, GetId());
|
||||||
event.SetEventObject(this);
|
event.SetEventObject(this);
|
||||||
ProcessEvent(event);
|
ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTreeCtrl::SendSelChanging(long item) {
|
void wxTreeCtrl::SendSelChanging(long item)
|
||||||
|
{
|
||||||
wxTreeEvent event(wxEVT_COMMAND_TREE_SEL_CHANGED, GetId());
|
wxTreeEvent event(wxEVT_COMMAND_TREE_SEL_CHANGED, GetId());
|
||||||
event.SetEventObject(this);
|
event.SetEventObject(this);
|
||||||
ProcessEvent(event);
|
ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTreeCtrl::SendSelChanged(long item) {
|
void wxTreeCtrl::SendSelChanged(long item)
|
||||||
|
{
|
||||||
wxTreeEvent event(wxEVT_COMMAND_TREE_SEL_CHANGING, GetId());
|
wxTreeEvent event(wxEVT_COMMAND_TREE_SEL_CHANGING, GetId());
|
||||||
event.SetEventObject(this);
|
event.SetEventObject(this);
|
||||||
ProcessEvent(event);
|
ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tree item structure
|
// Tree item structure
|
||||||
wxTreeItem::wxTreeItem(void) {
|
wxTreeItem::wxTreeItem()
|
||||||
|
{
|
||||||
m_mask = 0;
|
m_mask = 0;
|
||||||
m_itemId = 0;
|
m_itemId = 0;
|
||||||
m_state = 0;
|
m_state = 0;
|
||||||
@@ -759,7 +821,8 @@ wxTreeItem::wxTreeItem(void) {
|
|||||||
|
|
||||||
// If getFullInfo is TRUE, we explicitly query for more info if we haven't got it all.
|
// If getFullInfo is TRUE, we explicitly query for more info if we haven't got it all.
|
||||||
|
|
||||||
static void wxConvertFromGtkTreeItem(wxTreeItem& info, GtkTreeItem *gtkItem) {
|
static void wxConvertFromGtkTreeItem(wxTreeItem& info, GtkTreeItem *gtkItem)
|
||||||
|
{
|
||||||
GtkLabel *l;
|
GtkLabel *l;
|
||||||
char *t;
|
char *t;
|
||||||
|
|
||||||
@@ -776,7 +839,8 @@ static void wxConvertFromGtkTreeItem(wxTreeItem& info, GtkTreeItem *gtkItem) {
|
|||||||
info.m_text = t;
|
info.m_text = t;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void wxConvertToGtkTreeItem(wxTreeCtrl *owner, wxTreeItem& info, GtkTreeItem **gtkItem) {
|
static void wxConvertToGtkTreeItem(wxTreeCtrl *owner, wxTreeItem& info, GtkTreeItem **gtkItem)
|
||||||
|
{
|
||||||
GtkTreeItem *item = (*gtkItem);
|
GtkTreeItem *item = (*gtkItem);
|
||||||
|
|
||||||
if (item == NULL) {
|
if (item == NULL) {
|
||||||
@@ -813,7 +877,6 @@ static void wxConvertToGtkTreeItem(wxTreeCtrl *owner, wxTreeItem& info, GtkTreeI
|
|||||||
|
|
||||||
gtk_widget_show(GTK_WIDGET(m_box));
|
gtk_widget_show(GTK_WIDGET(m_box));
|
||||||
gtk_object_set_data(GTK_OBJECT(item), "id", (gpointer)info.m_itemId);
|
gtk_object_set_data(GTK_OBJECT(item), "id", (gpointer)info.m_itemId);
|
||||||
printf("owner = %p\n", owner);
|
|
||||||
gtk_object_set_data(GTK_OBJECT(item), "owner", owner);
|
gtk_object_set_data(GTK_OBJECT(item), "owner", owner);
|
||||||
(*gtkItem) = item;
|
(*gtkItem) = item;
|
||||||
}
|
}
|
||||||
@@ -822,8 +885,9 @@ printf("owner = %p\n", owner);
|
|||||||
// Tree event
|
// Tree event
|
||||||
IMPLEMENT_DYNAMIC_CLASS(wxTreeEvent, wxCommandEvent)
|
IMPLEMENT_DYNAMIC_CLASS(wxTreeEvent, wxCommandEvent)
|
||||||
|
|
||||||
wxTreeEvent::wxTreeEvent(wxEventType commandType, int id):
|
wxTreeEvent::wxTreeEvent(wxEventType commandType, int id)
|
||||||
wxCommandEvent(commandType, id) {
|
: wxCommandEvent(commandType, id)
|
||||||
|
{
|
||||||
m_code = 0;
|
m_code = 0;
|
||||||
m_oldItem = 0;
|
m_oldItem = 0;
|
||||||
}
|
}
|
||||||
|
@@ -40,7 +40,8 @@ static void gtk_treeitem_expand_callback(GtkWidget *WXUNUSED(widget), wxTreeItem
|
|||||||
static void gtk_treeitem_collapse_callback( GtkWidget *WXUNUSED(widget), wxTreeItem *treeitem);
|
static void gtk_treeitem_collapse_callback( GtkWidget *WXUNUSED(widget), wxTreeItem *treeitem);
|
||||||
static void gtk_treeitem_select_callback( GtkWidget *WXUNUSED(widget), wxTreeItem *treeitem);
|
static void gtk_treeitem_select_callback( GtkWidget *WXUNUSED(widget), wxTreeItem *treeitem);
|
||||||
|
|
||||||
static void gtk_treeitem_expand_callback(GtkWidget *widget, wxTreeItem *treeitem) {
|
static void gtk_treeitem_expand_callback(GtkWidget *widget, wxTreeItem *treeitem)
|
||||||
|
{
|
||||||
wxTreeCtrl *owner = (wxTreeCtrl *)gtk_object_get_data(GTK_OBJECT(widget), "owner");
|
wxTreeCtrl *owner = (wxTreeCtrl *)gtk_object_get_data(GTK_OBJECT(widget), "owner");
|
||||||
if (owner == NULL)
|
if (owner == NULL)
|
||||||
return;
|
return;
|
||||||
@@ -50,7 +51,8 @@ static void gtk_treeitem_expand_callback(GtkWidget *widget, wxTreeItem *treeitem
|
|||||||
owner->SendExpanded(id);
|
owner->SendExpanded(id);
|
||||||
};
|
};
|
||||||
|
|
||||||
static void gtk_treeitem_collapse_callback(GtkWidget *widget, wxTreeItem *treeitem) {
|
static void gtk_treeitem_collapse_callback(GtkWidget *widget, wxTreeItem *treeitem)
|
||||||
|
{
|
||||||
wxTreeCtrl *owner = (wxTreeCtrl *)gtk_object_get_data(GTK_OBJECT(widget), "owner");
|
wxTreeCtrl *owner = (wxTreeCtrl *)gtk_object_get_data(GTK_OBJECT(widget), "owner");
|
||||||
if (owner == NULL)
|
if (owner == NULL)
|
||||||
return;
|
return;
|
||||||
@@ -60,7 +62,8 @@ static void gtk_treeitem_collapse_callback(GtkWidget *widget, wxTreeItem *treeit
|
|||||||
owner->SendCollapsed(id);
|
owner->SendCollapsed(id);
|
||||||
};
|
};
|
||||||
|
|
||||||
static void gtk_treeitem_select_callback(GtkWidget *widget, wxTreeItem *treeitem) {
|
static void gtk_treeitem_select_callback(GtkWidget *widget, wxTreeItem *treeitem)
|
||||||
|
{
|
||||||
wxTreeCtrl *owner = (wxTreeCtrl *)gtk_object_get_data(GTK_OBJECT(widget), "owner");
|
wxTreeCtrl *owner = (wxTreeCtrl *)gtk_object_get_data(GTK_OBJECT(widget), "owner");
|
||||||
if (owner == NULL)
|
if (owner == NULL)
|
||||||
return;
|
return;
|
||||||
@@ -73,10 +76,10 @@ static void gtk_treeitem_select_callback(GtkWidget *widget, wxTreeItem *treeitem
|
|||||||
#if !USE_SHARED_LIBRARY
|
#if !USE_SHARED_LIBRARY
|
||||||
IMPLEMENT_DYNAMIC_CLASS(wxTreeCtrl, wxControl)
|
IMPLEMENT_DYNAMIC_CLASS(wxTreeCtrl, wxControl)
|
||||||
IMPLEMENT_DYNAMIC_CLASS(wxTreeItem, wxObject)
|
IMPLEMENT_DYNAMIC_CLASS(wxTreeItem, wxObject)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
wxTreeCtrl::wxTreeCtrl(void) {
|
wxTreeCtrl::wxTreeCtrl()
|
||||||
|
{
|
||||||
m_imageListNormal = NULL;
|
m_imageListNormal = NULL;
|
||||||
m_imageListState = NULL;
|
m_imageListState = NULL;
|
||||||
m_textCtrl = NULL;
|
m_textCtrl = NULL;
|
||||||
@@ -120,7 +123,6 @@ bool wxTreeCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, con
|
|||||||
m_tree = GTK_TREE(gtk_tree_new());
|
m_tree = GTK_TREE(gtk_tree_new());
|
||||||
|
|
||||||
gtk_container_add(GTK_CONTAINER(m_widget), GTK_WIDGET(m_tree));
|
gtk_container_add(GTK_CONTAINER(m_widget), GTK_WIDGET(m_tree));
|
||||||
gtk_widget_set_parent(GTK_WIDGET(m_tree), m_widget);
|
|
||||||
gtk_widget_show(GTK_WIDGET(m_tree));
|
gtk_widget_show(GTK_WIDGET(m_tree));
|
||||||
|
|
||||||
wxSystemSettings settings;
|
wxSystemSettings settings;
|
||||||
@@ -139,13 +141,14 @@ bool wxTreeCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, con
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxTreeCtrl::~wxTreeCtrl(void) {
|
wxTreeCtrl::~wxTreeCtrl()
|
||||||
if (m_textCtrl)
|
{
|
||||||
delete m_textCtrl;
|
wxDELETE(m_textCtrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Attributes
|
// Attributes
|
||||||
static void gtk_treectrl_count_callback (GtkWidget *widget, gpointer data) {
|
static void gtk_treectrl_count_callback (GtkWidget *widget, gpointer data)
|
||||||
|
{
|
||||||
int count = (*((int *)data));
|
int count = (*((int *)data));
|
||||||
|
|
||||||
count++;
|
count++;
|
||||||
@@ -153,7 +156,8 @@ static void gtk_treectrl_count_callback (GtkWidget *widget, gpointer data) {
|
|||||||
gtk_container_foreach(GTK_CONTAINER(widget), gtk_treectrl_count_callback, data);
|
gtk_container_foreach(GTK_CONTAINER(widget), gtk_treectrl_count_callback, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
int wxTreeCtrl::GetCount(void) const {
|
int wxTreeCtrl::GetCount() const
|
||||||
|
{
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
||||||
if (m_anchor != NULL)
|
if (m_anchor != NULL)
|
||||||
@@ -161,15 +165,18 @@ int wxTreeCtrl::GetCount(void) const {
|
|||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
int wxTreeCtrl::GetIndent(void) const {
|
int wxTreeCtrl::GetIndent() const
|
||||||
|
{
|
||||||
return m_tree->indent_value;
|
return m_tree->indent_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTreeCtrl::SetIndent(int indent) {
|
void wxTreeCtrl::SetIndent(int indent)
|
||||||
|
{
|
||||||
m_tree->indent_value = indent;
|
m_tree->indent_value = indent;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxImageList *wxTreeCtrl::GetImageList(int which) const {
|
wxImageList *wxTreeCtrl::GetImageList(int which) const
|
||||||
|
{
|
||||||
if (which == wxIMAGE_LIST_NORMAL) {
|
if (which == wxIMAGE_LIST_NORMAL) {
|
||||||
return m_imageListNormal;
|
return m_imageListNormal;
|
||||||
}
|
}
|
||||||
@@ -180,7 +187,8 @@ wxImageList *wxTreeCtrl::GetImageList(int which) const {
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTreeCtrl::SetImageList(wxImageList *imageList, int which) {
|
void wxTreeCtrl::SetImageList(wxImageList *imageList, int which)
|
||||||
|
{
|
||||||
if (which == wxIMAGE_LIST_NORMAL)
|
if (which == wxIMAGE_LIST_NORMAL)
|
||||||
m_imageListNormal = imageList;
|
m_imageListNormal = imageList;
|
||||||
else
|
else
|
||||||
@@ -188,7 +196,8 @@ void wxTreeCtrl::SetImageList(wxImageList *imageList, int which) {
|
|||||||
m_imageListState = imageList;
|
m_imageListState = imageList;
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxTreeCtrl::GetNextItem(long item, int code) const {
|
long wxTreeCtrl::GetNextItem(long item, int code) const
|
||||||
|
{
|
||||||
switch (code) {
|
switch (code) {
|
||||||
case wxTREE_NEXT_CARET:
|
case wxTREE_NEXT_CARET:
|
||||||
// flag = TVGN_CARET;
|
// flag = TVGN_CARET;
|
||||||
@@ -228,7 +237,8 @@ long wxTreeCtrl::GetNextItem(long item, int code) const {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::ItemHasChildren(long item) const {
|
bool wxTreeCtrl::ItemHasChildren(long item) const
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
||||||
@@ -239,7 +249,8 @@ bool wxTreeCtrl::ItemHasChildren(long item) const {
|
|||||||
return (count != 0);
|
return (count != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static GtkTreeItem *findItem(GtkTreeItem *p, long id) {
|
static GtkTreeItem *findItem(GtkTreeItem *p, long id)
|
||||||
|
{
|
||||||
GtkTreeItem *q;
|
GtkTreeItem *q;
|
||||||
|
|
||||||
if (((long)gtk_object_get_data(GTK_OBJECT(p), "id")) == id)
|
if (((long)gtk_object_get_data(GTK_OBJECT(p), "id")) == id)
|
||||||
@@ -266,11 +277,13 @@ static GtkTreeItem *findItem(GtkTreeItem *p, long id) {
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
GtkTreeItem *wxTreeCtrl::findGtkTreeItem(long id) const {
|
GtkTreeItem *wxTreeCtrl::findGtkTreeItem(long id) const
|
||||||
|
{
|
||||||
return findItem(m_anchor, id);
|
return findItem(m_anchor, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxTreeCtrl::GetChild(long item) const {
|
long wxTreeCtrl::GetChild(long item) const
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
GtkTreeItem *next = NULL;
|
GtkTreeItem *next = NULL;
|
||||||
|
|
||||||
@@ -284,7 +297,8 @@ long wxTreeCtrl::GetChild(long item) const {
|
|||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxTreeCtrl::GetParent(long item) const {
|
long wxTreeCtrl::GetParent(long item) const
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
|
|
||||||
p = findGtkTreeItem(item);
|
p = findGtkTreeItem(item);
|
||||||
@@ -294,7 +308,8 @@ long wxTreeCtrl::GetParent(long item) const {
|
|||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxTreeCtrl::GetFirstVisibleItem(void) const {
|
long wxTreeCtrl::GetFirstVisibleItem() const
|
||||||
|
{
|
||||||
GtkTreeItem *next = NULL;
|
GtkTreeItem *next = NULL;
|
||||||
|
|
||||||
GList *list = gtk_container_children(GTK_CONTAINER(m_anchor));
|
GList *list = gtk_container_children(GTK_CONTAINER(m_anchor));
|
||||||
@@ -307,7 +322,8 @@ long wxTreeCtrl::GetFirstVisibleItem(void) const {
|
|||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxTreeCtrl::GetNextVisibleItem(long item) const {
|
long wxTreeCtrl::GetNextVisibleItem(long item) const
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
GtkTreeItem *next = NULL;
|
GtkTreeItem *next = NULL;
|
||||||
|
|
||||||
@@ -322,7 +338,8 @@ long wxTreeCtrl::GetNextVisibleItem(long item) const {
|
|||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxTreeCtrl::GetSelection(void) const {
|
long wxTreeCtrl::GetSelection() const
|
||||||
|
{
|
||||||
GtkTreeItem *next = NULL;
|
GtkTreeItem *next = NULL;
|
||||||
|
|
||||||
GList *list = gtk_container_children(GTK_CONTAINER(m_anchor));
|
GList *list = gtk_container_children(GTK_CONTAINER(m_anchor));
|
||||||
@@ -335,17 +352,19 @@ long wxTreeCtrl::GetSelection(void) const {
|
|||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxTreeCtrl::GetRootItem(void) const {
|
long wxTreeCtrl::GetRootItem() const
|
||||||
|
{
|
||||||
return (long)gtk_object_get_data(GTK_OBJECT(m_anchor), "id");
|
return (long)gtk_object_get_data(GTK_OBJECT(m_anchor), "id");
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::GetItem(wxTreeItem& info) const {
|
bool wxTreeCtrl::GetItem(wxTreeItem& info) const
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
|
|
||||||
p = findGtkTreeItem(info.m_itemId);
|
p = findGtkTreeItem(info.m_itemId);
|
||||||
|
|
||||||
if (p == NULL) {
|
if (p == NULL) {
|
||||||
wxLogSysError("TreeCtrl::GetItem failed");
|
wxLogError("TreeCtrl::GetItem failed.");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -354,13 +373,14 @@ bool wxTreeCtrl::GetItem(wxTreeItem& info) const {
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::SetItem(wxTreeItem& info) {
|
bool wxTreeCtrl::SetItem(wxTreeItem& info)
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
|
|
||||||
p = findGtkTreeItem(info.m_itemId);
|
p = findGtkTreeItem(info.m_itemId);
|
||||||
|
|
||||||
if (p == NULL) {
|
if (p == NULL) {
|
||||||
wxLogSysError("TreeCtrl::SetItem failed");
|
wxLogError("TreeCtrl::SetItem failed.");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -369,7 +389,8 @@ bool wxTreeCtrl::SetItem(wxTreeItem& info) {
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
int wxTreeCtrl::GetItemState(long item, long stateMask) const {
|
int wxTreeCtrl::GetItemState(long item, long stateMask) const
|
||||||
|
{
|
||||||
wxTreeItem info;
|
wxTreeItem info;
|
||||||
|
|
||||||
info.m_mask = wxTREE_MASK_STATE ;
|
info.m_mask = wxTREE_MASK_STATE ;
|
||||||
@@ -382,7 +403,8 @@ int wxTreeCtrl::GetItemState(long item, long stateMask) const {
|
|||||||
return info.m_state;
|
return info.m_state;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::SetItemState(long item, long state, long stateMask) {
|
bool wxTreeCtrl::SetItemState(long item, long state, long stateMask)
|
||||||
|
{
|
||||||
wxTreeItem info;
|
wxTreeItem info;
|
||||||
|
|
||||||
info.m_mask = wxTREE_MASK_STATE ;
|
info.m_mask = wxTREE_MASK_STATE ;
|
||||||
@@ -393,7 +415,8 @@ bool wxTreeCtrl::SetItemState(long item, long state, long stateMask) {
|
|||||||
return SetItem(info);
|
return SetItem(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::SetItemImage(long item, int image, int selImage) {
|
bool wxTreeCtrl::SetItemImage(long item, int image, int selImage)
|
||||||
|
{
|
||||||
wxTreeItem info;
|
wxTreeItem info;
|
||||||
|
|
||||||
info.m_mask = wxTREE_MASK_IMAGE ;
|
info.m_mask = wxTREE_MASK_IMAGE ;
|
||||||
@@ -407,7 +430,8 @@ bool wxTreeCtrl::SetItemImage(long item, int image, int selImage) {
|
|||||||
return SetItem(info);
|
return SetItem(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
wxString wxTreeCtrl::GetItemText(long item) const {
|
wxString wxTreeCtrl::GetItemText(long item) const
|
||||||
|
{
|
||||||
wxTreeItem info;
|
wxTreeItem info;
|
||||||
|
|
||||||
info.m_mask = wxTREE_MASK_TEXT ;
|
info.m_mask = wxTREE_MASK_TEXT ;
|
||||||
@@ -418,7 +442,8 @@ wxString wxTreeCtrl::GetItemText(long item) const {
|
|||||||
return info.m_text;
|
return info.m_text;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTreeCtrl::SetItemText(long item, const wxString& str) {
|
void wxTreeCtrl::SetItemText(long item, const wxString& str)
|
||||||
|
{
|
||||||
wxTreeItem info;
|
wxTreeItem info;
|
||||||
|
|
||||||
info.m_mask = wxTREE_MASK_TEXT ;
|
info.m_mask = wxTREE_MASK_TEXT ;
|
||||||
@@ -428,7 +453,8 @@ void wxTreeCtrl::SetItemText(long item, const wxString& str) {
|
|||||||
SetItem(info);
|
SetItem(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxTreeCtrl::GetItemData(long item) const {
|
long wxTreeCtrl::GetItemData(long item) const
|
||||||
|
{
|
||||||
wxTreeItem info;
|
wxTreeItem info;
|
||||||
|
|
||||||
info.m_mask = wxTREE_MASK_DATA ;
|
info.m_mask = wxTREE_MASK_DATA ;
|
||||||
@@ -439,7 +465,8 @@ long wxTreeCtrl::GetItemData(long item) const {
|
|||||||
return info.m_data;
|
return info.m_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::SetItemData(long item, long data) {
|
bool wxTreeCtrl::SetItemData(long item, long data)
|
||||||
|
{
|
||||||
wxTreeItem info;
|
wxTreeItem info;
|
||||||
|
|
||||||
info.m_mask = wxTREE_MASK_DATA ;
|
info.m_mask = wxTREE_MASK_DATA ;
|
||||||
@@ -449,7 +476,8 @@ bool wxTreeCtrl::SetItemData(long item, long data) {
|
|||||||
return SetItem(info);
|
return SetItem(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::GetItemRect(long item, wxRectangle& rect, bool textOnly) const {
|
bool wxTreeCtrl::GetItemRect(long item, wxRectangle& rect, bool textOnly) const
|
||||||
|
{
|
||||||
/*
|
/*
|
||||||
RECT rect2;
|
RECT rect2;
|
||||||
|
|
||||||
@@ -463,15 +491,19 @@ bool wxTreeCtrl::GetItemRect(long item, wxRectangle& rect, bool textOnly) const
|
|||||||
rect.height = rect2.bottom - rect2.left;
|
rect.height = rect2.bottom - rect2.left;
|
||||||
return success;
|
return success;
|
||||||
*/
|
*/
|
||||||
|
wxFAIL_MSG("Not implemented");
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxTextCtrl* wxTreeCtrl::GetEditControl(void) const {
|
wxTextCtrl* wxTreeCtrl::GetEditControl() const
|
||||||
|
{
|
||||||
return m_textCtrl;
|
return m_textCtrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Operations
|
// Operations
|
||||||
bool wxTreeCtrl::DeleteItem(long item) {
|
bool wxTreeCtrl::DeleteItem(long item)
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
|
|
||||||
p = findGtkTreeItem(item);
|
p = findGtkTreeItem(item);
|
||||||
@@ -487,7 +519,8 @@ bool wxTreeCtrl::DeleteItem(long item) {
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::DeleteChildren(long item) {
|
bool wxTreeCtrl::DeleteChildren(long item)
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
|
|
||||||
p = findGtkTreeItem(item);
|
p = findGtkTreeItem(item);
|
||||||
@@ -499,7 +532,8 @@ bool wxTreeCtrl::DeleteChildren(long item) {
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::ExpandItem(long item, int action) {
|
bool wxTreeCtrl::ExpandItem(long item, int action)
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
|
|
||||||
p = findGtkTreeItem(item);
|
p = findGtkTreeItem(item);
|
||||||
@@ -535,7 +569,8 @@ bool wxTreeCtrl::ExpandItem(long item, int action) {
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxTreeCtrl::InsertItem(long parent, wxTreeItem& info, long insertAfter) {
|
long wxTreeCtrl::InsertItem(long parent, wxTreeItem& info, long insertAfter)
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
GtkTreeItem *item = NULL;
|
GtkTreeItem *item = NULL;
|
||||||
|
|
||||||
@@ -599,7 +634,8 @@ long wxTreeCtrl::InsertItem(long parent, const wxString& label, int image,
|
|||||||
return InsertItem(parent, info, insertAfter);
|
return InsertItem(parent, info, insertAfter);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::SelectItem(long item) {
|
bool wxTreeCtrl::SelectItem(long item)
|
||||||
|
{
|
||||||
GtkTreeItem *p;
|
GtkTreeItem *p;
|
||||||
|
|
||||||
p = findGtkTreeItem(item);
|
p = findGtkTreeItem(item);
|
||||||
@@ -610,16 +646,21 @@ bool wxTreeCtrl::SelectItem(long item) {
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::ScrollTo(long item) {
|
bool wxTreeCtrl::ScrollTo(long item)
|
||||||
|
{
|
||||||
|
wxFAIL_MSG("Not implemented");
|
||||||
|
|
||||||
return FALSE; // Still unimplemented
|
return FALSE; // Still unimplemented
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::DeleteAllItems(void) {
|
bool wxTreeCtrl::DeleteAllItems()
|
||||||
|
{
|
||||||
gtk_tree_item_remove_subtree(m_anchor);
|
gtk_tree_item_remove_subtree(m_anchor);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxTextCtrl* wxTreeCtrl::EditLabel(long item, wxClassInfo* textControlClass) {
|
wxTextCtrl* wxTreeCtrl::EditLabel(long item, wxClassInfo* textControlClass)
|
||||||
|
{
|
||||||
wxASSERT( (textControlClass->IsKindOf(CLASSINFO(wxTextCtrl))) );
|
wxASSERT( (textControlClass->IsKindOf(CLASSINFO(wxTextCtrl))) );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -638,11 +679,14 @@ wxTextCtrl* wxTreeCtrl::EditLabel(long item, wxClassInfo* textControlClass) {
|
|||||||
m_textCtrl->SubclassWin((WXHWND) hWnd);
|
m_textCtrl->SubclassWin((WXHWND) hWnd);
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
wxFAIL_MSG("Not implemented");
|
||||||
|
|
||||||
return m_textCtrl;
|
return m_textCtrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// End label editing, optionally cancelling the edit
|
// End label editing, optionally cancelling the edit
|
||||||
bool wxTreeCtrl::EndEditLabel(bool cancel) {
|
bool wxTreeCtrl::EndEditLabel(bool cancel)
|
||||||
|
{
|
||||||
/*
|
/*
|
||||||
bool success = (TreeView_EndEditLabelNow((HWND) GetHWND(), cancel) != 0);
|
bool success = (TreeView_EndEditLabelNow((HWND) GetHWND(), cancel) != 0);
|
||||||
|
|
||||||
@@ -655,10 +699,13 @@ bool wxTreeCtrl::EndEditLabel(bool cancel) {
|
|||||||
}
|
}
|
||||||
return success;
|
return success;
|
||||||
*/
|
*/
|
||||||
|
wxFAIL_MSG("Not implemented");
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxTreeCtrl::HitTest(const wxPoint& point, int& flags) {
|
long wxTreeCtrl::HitTest(const wxPoint& point, int& flags)
|
||||||
|
{
|
||||||
/*
|
/*
|
||||||
TV_HITTESTINFO hitTestInfo;
|
TV_HITTESTINFO hitTestInfo;
|
||||||
hitTestInfo.pt.x = (int) point.x;
|
hitTestInfo.pt.x = (int) point.x;
|
||||||
@@ -692,6 +739,8 @@ long wxTreeCtrl::HitTest(const wxPoint& point, int& flags) {
|
|||||||
|
|
||||||
return (long) hitTestInfo.hItem ;
|
return (long) hitTestInfo.hItem ;
|
||||||
*/
|
*/
|
||||||
|
wxFAIL_MSG("Not implemented");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -701,52 +750,65 @@ wxImageList *wxTreeCtrl::CreateDragImage(long item)
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool wxTreeCtrl::SortChildren(long item) {
|
bool wxTreeCtrl::SortChildren(long item)
|
||||||
|
{
|
||||||
|
wxFAIL_MSG("Not implemented");
|
||||||
|
|
||||||
return FALSE; // Still unimplemented
|
return FALSE; // Still unimplemented
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTreeCtrl::EnsureVisible(long item) {
|
bool wxTreeCtrl::EnsureVisible(long item)
|
||||||
|
{
|
||||||
|
wxFAIL_MSG("Not implemented");
|
||||||
|
|
||||||
return FALSE; // Still unimplemented
|
return FALSE; // Still unimplemented
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTreeCtrl::SendExpanding(long item) {
|
void wxTreeCtrl::SendExpanding(long item)
|
||||||
|
{
|
||||||
wxTreeEvent event(wxEVT_COMMAND_TREE_ITEM_EXPANDING, GetId());
|
wxTreeEvent event(wxEVT_COMMAND_TREE_ITEM_EXPANDING, GetId());
|
||||||
event.SetEventObject(this);
|
event.SetEventObject(this);
|
||||||
ProcessEvent(event);
|
ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTreeCtrl::SendExpanded(long item) {
|
void wxTreeCtrl::SendExpanded(long item)
|
||||||
|
{
|
||||||
wxTreeEvent event(wxEVT_COMMAND_TREE_ITEM_EXPANDED, GetId());
|
wxTreeEvent event(wxEVT_COMMAND_TREE_ITEM_EXPANDED, GetId());
|
||||||
event.SetEventObject(this);
|
event.SetEventObject(this);
|
||||||
ProcessEvent(event);
|
ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTreeCtrl::SendCollapsing(long item) {
|
void wxTreeCtrl::SendCollapsing(long item)
|
||||||
|
{
|
||||||
wxTreeEvent event(wxEVT_COMMAND_TREE_ITEM_COLLAPSING, GetId());
|
wxTreeEvent event(wxEVT_COMMAND_TREE_ITEM_COLLAPSING, GetId());
|
||||||
event.SetEventObject(this);
|
event.SetEventObject(this);
|
||||||
ProcessEvent(event);
|
ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTreeCtrl::SendCollapsed(long item) {
|
void wxTreeCtrl::SendCollapsed(long item)
|
||||||
|
{
|
||||||
wxTreeEvent event(wxEVT_COMMAND_TREE_ITEM_COLLAPSED, GetId());
|
wxTreeEvent event(wxEVT_COMMAND_TREE_ITEM_COLLAPSED, GetId());
|
||||||
event.SetEventObject(this);
|
event.SetEventObject(this);
|
||||||
ProcessEvent(event);
|
ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTreeCtrl::SendSelChanging(long item) {
|
void wxTreeCtrl::SendSelChanging(long item)
|
||||||
|
{
|
||||||
wxTreeEvent event(wxEVT_COMMAND_TREE_SEL_CHANGED, GetId());
|
wxTreeEvent event(wxEVT_COMMAND_TREE_SEL_CHANGED, GetId());
|
||||||
event.SetEventObject(this);
|
event.SetEventObject(this);
|
||||||
ProcessEvent(event);
|
ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxTreeCtrl::SendSelChanged(long item) {
|
void wxTreeCtrl::SendSelChanged(long item)
|
||||||
|
{
|
||||||
wxTreeEvent event(wxEVT_COMMAND_TREE_SEL_CHANGING, GetId());
|
wxTreeEvent event(wxEVT_COMMAND_TREE_SEL_CHANGING, GetId());
|
||||||
event.SetEventObject(this);
|
event.SetEventObject(this);
|
||||||
ProcessEvent(event);
|
ProcessEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tree item structure
|
// Tree item structure
|
||||||
wxTreeItem::wxTreeItem(void) {
|
wxTreeItem::wxTreeItem()
|
||||||
|
{
|
||||||
m_mask = 0;
|
m_mask = 0;
|
||||||
m_itemId = 0;
|
m_itemId = 0;
|
||||||
m_state = 0;
|
m_state = 0;
|
||||||
@@ -759,7 +821,8 @@ wxTreeItem::wxTreeItem(void) {
|
|||||||
|
|
||||||
// If getFullInfo is TRUE, we explicitly query for more info if we haven't got it all.
|
// If getFullInfo is TRUE, we explicitly query for more info if we haven't got it all.
|
||||||
|
|
||||||
static void wxConvertFromGtkTreeItem(wxTreeItem& info, GtkTreeItem *gtkItem) {
|
static void wxConvertFromGtkTreeItem(wxTreeItem& info, GtkTreeItem *gtkItem)
|
||||||
|
{
|
||||||
GtkLabel *l;
|
GtkLabel *l;
|
||||||
char *t;
|
char *t;
|
||||||
|
|
||||||
@@ -776,7 +839,8 @@ static void wxConvertFromGtkTreeItem(wxTreeItem& info, GtkTreeItem *gtkItem) {
|
|||||||
info.m_text = t;
|
info.m_text = t;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void wxConvertToGtkTreeItem(wxTreeCtrl *owner, wxTreeItem& info, GtkTreeItem **gtkItem) {
|
static void wxConvertToGtkTreeItem(wxTreeCtrl *owner, wxTreeItem& info, GtkTreeItem **gtkItem)
|
||||||
|
{
|
||||||
GtkTreeItem *item = (*gtkItem);
|
GtkTreeItem *item = (*gtkItem);
|
||||||
|
|
||||||
if (item == NULL) {
|
if (item == NULL) {
|
||||||
@@ -813,7 +877,6 @@ static void wxConvertToGtkTreeItem(wxTreeCtrl *owner, wxTreeItem& info, GtkTreeI
|
|||||||
|
|
||||||
gtk_widget_show(GTK_WIDGET(m_box));
|
gtk_widget_show(GTK_WIDGET(m_box));
|
||||||
gtk_object_set_data(GTK_OBJECT(item), "id", (gpointer)info.m_itemId);
|
gtk_object_set_data(GTK_OBJECT(item), "id", (gpointer)info.m_itemId);
|
||||||
printf("owner = %p\n", owner);
|
|
||||||
gtk_object_set_data(GTK_OBJECT(item), "owner", owner);
|
gtk_object_set_data(GTK_OBJECT(item), "owner", owner);
|
||||||
(*gtkItem) = item;
|
(*gtkItem) = item;
|
||||||
}
|
}
|
||||||
@@ -822,8 +885,9 @@ printf("owner = %p\n", owner);
|
|||||||
// Tree event
|
// Tree event
|
||||||
IMPLEMENT_DYNAMIC_CLASS(wxTreeEvent, wxCommandEvent)
|
IMPLEMENT_DYNAMIC_CLASS(wxTreeEvent, wxCommandEvent)
|
||||||
|
|
||||||
wxTreeEvent::wxTreeEvent(wxEventType commandType, int id):
|
wxTreeEvent::wxTreeEvent(wxEventType commandType, int id)
|
||||||
wxCommandEvent(commandType, id) {
|
: wxCommandEvent(commandType, id)
|
||||||
|
{
|
||||||
m_code = 0;
|
m_code = 0;
|
||||||
m_oldItem = 0;
|
m_oldItem = 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user