]> git.saurik.com Git - wxWidgets.git/blobdiff - src/stubs/treectrl.cpp
Added stubs .cpp files.
[wxWidgets.git] / src / stubs / treectrl.cpp
diff --git a/src/stubs/treectrl.cpp b/src/stubs/treectrl.cpp
new file mode 100644 (file)
index 0000000..0b405a7
--- /dev/null
@@ -0,0 +1,419 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        treectrl.cpp
+// Purpose:     wxTreeCtrl
+// Author:      AUTHOR
+// Modified by:
+// Created:     ??/??/98
+// RCS-ID:      $Id$
+// Copyright:   (c) AUTHOR
+// Licence:    wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifdef __GNUG__
+#pragma implementation "treectrl.h"
+#endif
+
+#include "wx/treectrl.h"
+
+#if !USE_SHARED_LIBRARY
+IMPLEMENT_DYNAMIC_CLASS(wxTreeCtrl, wxControl)
+IMPLEMENT_DYNAMIC_CLASS(wxTreeItem, wxObject)
+
+#endif
+
+wxTreeCtrl::wxTreeCtrl()
+{
+    m_imageListNormal = NULL;
+    m_imageListState = NULL;
+    m_textCtrl = NULL;
+}
+
+bool wxTreeCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size,
+            long style, const wxValidator& validator, const wxString& name)
+{
+    SetName(name);
+    SetValidator(validator);
+
+    m_imageListNormal = NULL;
+    m_imageListState = NULL;
+    m_textCtrl = NULL;
+
+    m_windowStyle = style;
+
+    SetParent(parent);
+
+    m_windowId = (id == -1) ? NewControlId() : id;
+
+    if (parent) parent->AddChild(this);
+
+    // TODO create tree control
+
+    return FALSE;
+}
+
+wxTreeCtrl::~wxTreeCtrl()
+{
+    if (m_textCtrl)
+    {
+        delete m_textCtrl;
+    }
+}
+
+// Attributes
+int wxTreeCtrl::GetCount() const
+{
+    // TODO
+    return 0;
+}
+
+int wxTreeCtrl::GetIndent() const
+{
+    // TODO
+    return 0;
+}
+
+void wxTreeCtrl::SetIndent(int indent)
+{
+    // TODO
+}
+
+wxImageList *wxTreeCtrl::GetImageList(int which) const
+{
+  if ( which == wxIMAGE_LIST_NORMAL )
+    {
+    return m_imageListNormal;
+  }
+  else if ( which == wxIMAGE_LIST_STATE )
+    {
+    return m_imageListState;
+  }
+  return NULL;
+}
+
+void wxTreeCtrl::SetImageList(wxImageList *imageList, int which)
+{
+    if ( which == wxIMAGE_LIST_NORMAL )
+    {
+        m_imageListNormal = imageList;
+    }
+    else if ( which == wxIMAGE_LIST_STATE )
+    {
+        m_imageListState = imageList;
+    }
+    // TODO
+}
+
+long wxTreeCtrl::GetNextItem(long item, int code) const
+{
+    // TODO
+    return 0;
+}
+
+bool wxTreeCtrl::ItemHasChildren(long item) const
+{
+    // TODO
+    return FALSE;
+}
+
+long wxTreeCtrl::GetChild(long item) const
+{
+    // TODO
+    return 0;
+}
+
+long wxTreeCtrl::GetParent(long item) const
+{
+    // TODO
+    return 0;
+}
+
+long wxTreeCtrl::GetFirstVisibleItem() const
+{
+    // TODO
+    return 0;
+}
+
+long wxTreeCtrl::GetNextVisibleItem(long item) const
+{
+    // TODO
+    return 0;
+}
+
+long wxTreeCtrl::GetSelection() const
+{
+    // TODO
+    return 0;
+}
+
+long wxTreeCtrl::GetRootItem() const
+{
+    // TODO
+    return 0;
+}
+
+bool wxTreeCtrl::GetItem(wxTreeItem& info) const
+{
+    // TODO
+    return FALSE;
+}
+
+bool wxTreeCtrl::SetItem(wxTreeItem& info)
+{
+    // TODO
+    return FALSE;
+}
+
+int wxTreeCtrl::GetItemState(long item, long stateMask) const
+{
+    wxTreeItem info;
+
+    info.m_mask = wxTREE_MASK_STATE ;
+    info.m_stateMask = stateMask;
+    info.m_itemId = item;
+
+    if (!GetItem(info))
+        return 0;
+
+    return info.m_state;
+}
+
+bool wxTreeCtrl::SetItemState(long item, long state, long stateMask)
+{
+    wxTreeItem info;
+
+    info.m_mask = wxTREE_MASK_STATE ;
+    info.m_state = state;
+    info.m_stateMask = stateMask;
+    info.m_itemId = item;
+
+    return SetItem(info);
+}
+
+bool wxTreeCtrl::SetItemImage(long item, int image, int selImage)
+{
+    wxTreeItem info;
+
+    info.m_mask = wxTREE_MASK_IMAGE ;
+    info.m_image = image;
+    if ( selImage > -1)
+    {
+        info.m_selectedImage = selImage;
+        info.m_mask |= wxTREE_MASK_SELECTED_IMAGE;
+    }
+    info.m_itemId = item;
+
+    return SetItem(info);
+}
+
+wxString wxTreeCtrl::GetItemText(long item) const
+{
+    wxTreeItem info;
+
+    info.m_mask = wxTREE_MASK_TEXT ;
+    info.m_itemId = item;
+
+    if (!GetItem(info))
+        return wxString("");
+    return info.m_text;
+}
+
+void wxTreeCtrl::SetItemText(long item, const wxString& str)
+{
+    wxTreeItem info;
+
+    info.m_mask = wxTREE_MASK_TEXT ;
+    info.m_itemId = item;
+    info.m_text = str;
+
+    SetItem(info);
+}
+
+long wxTreeCtrl::GetItemData(long item) const
+{
+    wxTreeItem info;
+
+    info.m_mask = wxTREE_MASK_DATA ;
+    info.m_itemId = item;
+
+    if (!GetItem(info))
+        return 0;
+    return info.m_data;
+}
+
+bool wxTreeCtrl::SetItemData(long item, long data)
+{
+    wxTreeItem info;
+
+    info.m_mask = wxTREE_MASK_DATA ;
+    info.m_itemId = item;
+    info.m_data = data;
+
+    return SetItem(info);
+}
+
+bool wxTreeCtrl::GetItemRect(long item, wxRectangle& rect, bool textOnly) const
+{
+    // TODO
+    return FALSE;
+}
+
+wxTextCtrl* wxTreeCtrl::GetEditControl() const
+{
+    return m_textCtrl;
+}
+
+// Operations
+bool wxTreeCtrl::DeleteItem(long item)
+{
+    // TODO
+    return FALSE;
+}
+
+bool wxTreeCtrl::ExpandItem(long item, int action)
+{
+    // TODO
+  switch ( action )
+  {
+    case wxTREE_EXPAND_EXPAND:
+      break;
+
+    case wxTREE_EXPAND_COLLAPSE:
+      break;
+
+    case wxTREE_EXPAND_COLLAPSE_RESET:
+      mswAction = TVE_COLLAPSERESET;
+      break;
+
+    case wxTREE_EXPAND_TOGGLE:
+      mswAction = TVE_TOGGLE;
+      break;
+
+    default:
+      wxFAIL_MSG("unknown action in wxTreeCtrl::ExpandItem");
+  }
+
+  bool bOk = FALSE; // TODO expand item
+
+  // May not send messages, so emulate them
+  if ( bOk ) {
+    wxTreeEvent event(wxEVT_NULL, m_windowId);
+    event.m_item.m_itemId  = item;
+    event.m_item.m_mask      =
+    event.m_item.m_stateMask = 0xffff; // get all
+    GetItem(event.m_item);
+
+    bool bIsExpanded = (event.m_item.m_state & wxTREE_STATE_EXPANDED) != 0;
+
+    event.m_code = action;
+    event.SetEventObject(this);
+
+    // @@@ return values of {EXPAND|COLLAPS}ING event handler is discarded
+    event.SetEventType(bIsExpanded ? wxEVT_COMMAND_TREE_ITEM_EXPANDING
+                                   : wxEVT_COMMAND_TREE_ITEM_COLLAPSING);
+    GetEventHandler()->ProcessEvent(event);
+
+    event.SetEventType(bIsExpanded ? wxEVT_COMMAND_TREE_ITEM_EXPANDED
+                                   : wxEVT_COMMAND_TREE_ITEM_COLLAPSED);
+    GetEventHandler()->ProcessEvent(event);
+  }
+
+  return bOk;
+}
+
+long wxTreeCtrl::InsertItem(long parent, wxTreeItem& info, long insertAfter)
+{
+    // TODO
+    return 0;
+}
+
+long wxTreeCtrl::InsertItem(long parent, const wxString& label, int image, int selImage,
+  long insertAfter)
+{
+    wxTreeItem info;
+    info.m_text = label;
+    info.m_mask = wxTREE_MASK_TEXT;
+    if ( image > -1 )
+    {
+        info.m_mask |= wxTREE_MASK_IMAGE | wxTREE_MASK_SELECTED_IMAGE;
+        info.m_image = image;
+        if ( selImage == -1 )
+            info.m_selectedImage = image;
+        else
+            info.m_selectedImage = selImage;
+    }
+
+    return InsertItem(parent, info, insertAfter);
+}
+
+bool wxTreeCtrl::SelectItem(long item)
+{
+    // TODO
+    return FALSE;
+}
+
+bool wxTreeCtrl::ScrollTo(long item)
+{
+    // TODO
+    return FALSE;
+}
+
+bool wxTreeCtrl::DeleteAllItems()
+{
+    // TODO
+    return FALSE;
+}
+
+wxTextCtrl* wxTreeCtrl::EditLabel(long item, wxClassInfo* textControlClass)
+{
+    // TODO
+    return NULL;
+}
+
+// End label editing, optionally cancelling the edit
+bool wxTreeCtrl::EndEditLabel(bool cancel)
+{
+    // TODO
+    return FALSE;
+}
+
+long wxTreeCtrl::HitTest(const wxPoint& point, int& flags)
+{
+    // TODO
+    return 0;
+}
+
+bool wxTreeCtrl::SortChildren(long item)
+{
+    // TODO
+    return FALSE;
+}
+
+bool wxTreeCtrl::EnsureVisible(long item)
+{
+    // TODO
+    return FALSE;
+}
+
+// Tree item structure
+wxTreeItem::wxTreeItem()
+{
+    m_mask = 0;
+    m_itemId = 0;
+    m_state = 0;
+    m_stateMask = 0;
+    m_image = -1;
+    m_selectedImage = -1;
+    m_children = 0;
+    m_data = 0;
+}
+
+// Tree event
+IMPLEMENT_DYNAMIC_CLASS(wxTreeEvent, wxCommandEvent)
+
+wxTreeEvent::wxTreeEvent(wxEventType commandType, int id):
+  wxCommandEvent(commandType, id)
+{
+    m_code = 0;
+    m_oldItem = 0;
+}
+