forked from mirrors/gecko-dev
		
	MozReview-Commit-ID: 8j5yLqr7MTc --HG-- extra : rebase_source : 0da3b4bf0fca0462e22f76c1392f1d9e69f0e71c extra : amend_source : d6c92db62af2b62671cf13f0b5385b2bc2c8b81e
		
			
				
	
	
		
			130 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 | 
						|
/* This Source Code Form is subject to the terms of the Mozilla Public
 | 
						|
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
						|
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | 
						|
 | 
						|
#ifndef mozilla_dom_TreeBoxObject_h
 | 
						|
#define mozilla_dom_TreeBoxObject_h
 | 
						|
 | 
						|
#include "mozilla/dom/BoxObject.h"
 | 
						|
#include "nsITreeView.h"
 | 
						|
#include "nsITreeBoxObject.h"
 | 
						|
 | 
						|
class nsTreeBodyFrame;
 | 
						|
class nsTreeColumn;
 | 
						|
class nsTreeColumns;
 | 
						|
 | 
						|
namespace mozilla {
 | 
						|
namespace dom {
 | 
						|
 | 
						|
struct TreeCellInfo;
 | 
						|
class DOMRect;
 | 
						|
 | 
						|
class TreeBoxObject final : public BoxObject,
 | 
						|
                            public nsITreeBoxObject
 | 
						|
{
 | 
						|
public:
 | 
						|
  NS_DECL_ISUPPORTS_INHERITED
 | 
						|
  NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(TreeBoxObject, BoxObject)
 | 
						|
  NS_DECL_NSITREEBOXOBJECT
 | 
						|
 | 
						|
  TreeBoxObject();
 | 
						|
 | 
						|
  nsTreeBodyFrame* GetTreeBodyFrame(bool aFlushLayout = false);
 | 
						|
  nsTreeBodyFrame* GetCachedTreeBodyFrame() { return mTreeBody; }
 | 
						|
 | 
						|
  //NS_PIBOXOBJECT interfaces
 | 
						|
  virtual void Clear() override;
 | 
						|
  virtual void ClearCachedValues() override;
 | 
						|
 | 
						|
  // WebIDL
 | 
						|
  virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
 | 
						|
 | 
						|
  already_AddRefed<nsTreeColumns> GetColumns();
 | 
						|
 | 
						|
  already_AddRefed<nsITreeView> GetView();
 | 
						|
 | 
						|
  void SetView(nsITreeView* arg, ErrorResult& aRv);
 | 
						|
 | 
						|
  bool Focused();
 | 
						|
 | 
						|
  already_AddRefed<Element> GetTreeBody();
 | 
						|
 | 
						|
  int32_t RowHeight();
 | 
						|
 | 
						|
  int32_t RowWidth();
 | 
						|
 | 
						|
  int32_t HorizontalPosition();
 | 
						|
 | 
						|
  already_AddRefed<nsIScriptableRegion> SelectionRegion();
 | 
						|
 | 
						|
  int32_t GetFirstVisibleRow();
 | 
						|
 | 
						|
  int32_t GetLastVisibleRow();
 | 
						|
 | 
						|
  int32_t GetPageLength();
 | 
						|
 | 
						|
  int32_t GetRowAt(int32_t x, int32_t y);
 | 
						|
 | 
						|
  void GetCellAt(int32_t x, int32_t y, TreeCellInfo& aRetVal, ErrorResult& aRv);
 | 
						|
 | 
						|
  already_AddRefed<DOMRect> GetCoordsForCellItem(int32_t row,
 | 
						|
                                                 nsTreeColumn& col,
 | 
						|
                                                 const nsAString& element,
 | 
						|
                                                 ErrorResult& aRv);
 | 
						|
 | 
						|
  bool IsCellCropped(int32_t row, nsITreeColumn* col, ErrorResult& aRv);
 | 
						|
 | 
						|
  void RemoveImageCacheEntry(int32_t row, nsITreeColumn& col, ErrorResult& aRv);
 | 
						|
 | 
						|
  // Deprecated APIs from old IDL
 | 
						|
  void GetCellAt(JSContext* cx,
 | 
						|
                 int32_t x, int32_t y,
 | 
						|
                 JS::Handle<JSObject*> rowOut,
 | 
						|
                 JS::Handle<JSObject*> colOut,
 | 
						|
                 JS::Handle<JSObject*> childEltOut,
 | 
						|
                 ErrorResult& aRv);
 | 
						|
 | 
						|
  void GetCoordsForCellItem(JSContext* cx,
 | 
						|
                            int32_t row,
 | 
						|
                            nsTreeColumn& col,
 | 
						|
                            const nsAString& element,
 | 
						|
                            JS::Handle<JSObject*> xOut,
 | 
						|
                            JS::Handle<JSObject*> yOut,
 | 
						|
                            JS::Handle<JSObject*> widthOut,
 | 
						|
                            JS::Handle<JSObject*> heightOut,
 | 
						|
                            ErrorResult& aRv);
 | 
						|
 | 
						|
  // Same signature (except for nsresult return type) as the XPIDL impls
 | 
						|
  // void Invalidate();
 | 
						|
  // void BeginUpdateBatch();
 | 
						|
  // void EndUpdateBatch();
 | 
						|
  // void ClearStyleAndImageCaches();
 | 
						|
  // void SetFocused(bool arg);
 | 
						|
  // void EnsureRowIsVisible(int32_t index);
 | 
						|
  // void EnsureCellIsVisible(int32_t row, nsITreeColumn* col);
 | 
						|
  // void ScrollToRow(int32_t index);
 | 
						|
  // void ScrollByLines(int32_t numLines);
 | 
						|
  // void ScrollByPages(int32_t numPages);
 | 
						|
  // void ScrollToCell(int32_t row, nsITreeColumn* col);
 | 
						|
  // void ScrollToColumn(nsITreeColumn* col);
 | 
						|
  // void ScrollToHorizontalPosition(int32_t horizontalPosition);
 | 
						|
  // void InvalidateColumn(nsITreeColumn* col);
 | 
						|
  // void InvalidateRow(int32_t index);
 | 
						|
  // void InvalidateCell(int32_t row, nsITreeColumn* col);
 | 
						|
  // void InvalidateRange(int32_t startIndex, int32_t endIndex);
 | 
						|
  // void InvalidateColumnRange(int32_t startIndex, int32_t endIndex, nsITreeColumn* col);
 | 
						|
  // void RowCountChanged(int32_t index, int32_t count);
 | 
						|
 | 
						|
protected:
 | 
						|
  nsTreeBodyFrame* mTreeBody;
 | 
						|
  nsCOMPtr<nsITreeView> mView;
 | 
						|
 | 
						|
private:
 | 
						|
  ~TreeBoxObject();
 | 
						|
};
 | 
						|
 | 
						|
} // namespace dom
 | 
						|
} // namespace mozilla
 | 
						|
 | 
						|
#endif
 |