|
1 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
2 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
4 #ifndef _NSSASNTREE_H_ |
|
5 #define _NSSASNTREE_H_ |
|
6 |
|
7 #include "nscore.h" |
|
8 #include "nsIX509Cert.h" |
|
9 #include "nsIASN1Tree.h" |
|
10 #include "nsIASN1Object.h" |
|
11 #include "nsIASN1Sequence.h" |
|
12 #include "nsITreeView.h" |
|
13 #include "nsITreeBoxObject.h" |
|
14 #include "nsITreeSelection.h" |
|
15 #include "nsCOMPtr.h" |
|
16 |
|
17 //4bfaa9f0-1dd2-11b2-afae-a82cbaa0b606 |
|
18 #define NS_NSSASN1OUTINER_CID { \ |
|
19 0x4bfaa9f0, \ |
|
20 0x1dd2, \ |
|
21 0x11b2, \ |
|
22 {0xaf,0xae,0xa8,0x2c,0xba,0xa0,0xb6,0x06} \ |
|
23 } |
|
24 |
|
25 |
|
26 class nsNSSASN1Tree : public nsIASN1Tree |
|
27 { |
|
28 public: |
|
29 NS_DECL_THREADSAFE_ISUPPORTS |
|
30 NS_DECL_NSIASN1TREE |
|
31 NS_DECL_NSITREEVIEW |
|
32 |
|
33 nsNSSASN1Tree(); |
|
34 virtual ~nsNSSASN1Tree(); |
|
35 protected: |
|
36 |
|
37 class myNode |
|
38 { |
|
39 public: |
|
40 nsCOMPtr<nsIASN1Object> obj; |
|
41 nsCOMPtr<nsIASN1Sequence> seq; |
|
42 myNode *child; |
|
43 myNode *next; |
|
44 myNode *parent; |
|
45 |
|
46 myNode() { |
|
47 child = next = parent = nullptr; |
|
48 } |
|
49 }; |
|
50 |
|
51 myNode *mTopNode; |
|
52 |
|
53 nsCOMPtr<nsIASN1Object> mASN1Object; |
|
54 nsCOMPtr<nsITreeSelection> mSelection; |
|
55 nsCOMPtr<nsITreeBoxObject> mTree; |
|
56 |
|
57 void InitNodes(); |
|
58 void InitChildsRecursively(myNode *n); |
|
59 |
|
60 void ClearNodes(); |
|
61 void ClearNodesRecursively(myNode *n); |
|
62 |
|
63 int32_t CountVisibleNodes(myNode *n); |
|
64 myNode *FindNodeFromIndex(myNode *n, int32_t wantedIndex, |
|
65 int32_t &index_counter, int32_t &level_counter, |
|
66 int32_t *optionalOutParentIndex, int32_t *optionalOutLevel); |
|
67 myNode *FindNodeFromIndex(int32_t wantedIndex, |
|
68 int32_t *optionalOutParentIndex = nullptr, |
|
69 int32_t *optionalOutLevel = nullptr); |
|
70 |
|
71 }; |
|
72 #endif //_NSSASNTREE_H_ |