1 /* 2 FXiTe - The Free eXtensIble Text Editor 3 Copyright (c) 2009 Jeffrey Pohlmeyer <yetanothergeek@gmail.com> 4 5 This program is free software; you can redistribute it and/or modify it 6 under the terms of the GNU General Public License version 3 as 7 published by the Free Software Foundation. 8 9 This software is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU General Public License for more details. 13 14 You should have received a copy of the GNU General Public License 15 along with this program; if not, write to the Free Software 16 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 17 */ 18 19 20 class ToolsDialog; 21 class UserMenu; 22 23 24 class ToolsTree: public FXTreeList { 25 private: 26 FXTreeItem* prev_item; 27 void build_tree(FXTreeItem*item, const FXPopup*menu); 28 UserMenu** menu_list; 29 FXTreeItem *tools; 30 FXTreeItem* dummy_item; 31 FXTreeItem* restored_item; 32 FXString saved_path; 33 protected: 34 friend class ToolsDialog; SavedPath()35 const char* SavedPath() {return saved_path.text(); } SetSavedPath(const char * sp)36 void SetSavedPath(const char* sp) { saved_path=sp; } Tools()37 FXTreeItem*Tools() { return tools; } PrevItem()38 FXTreeItem*PrevItem() { return prev_item; } DummyItem()39 FXTreeItem* DummyItem() { return dummy_item; } SetPrevItem(FXTreeItem * prv)40 void SetPrevItem(FXTreeItem*prv) { prev_item=prv; } 41 void scan(bool rebuild); 42 void MakeDummyMenu(FXTreeItem*parent_item); 43 void MakeDummyTool(FXTreeItem*parent_item, FXuint perm); 44 public: 45 ToolsTree(FXComposite*p, FXObject*tgt, FXSelector sel, UserMenu**menus); 46 static const char*getFilePath(FXTreeItem*item); 47 UserMenu*GetUserMenu(FXTreeItem*item); 48 static bool SelectTool(FXWindow* owner, UserMenu** menus, FXMenuCommand*&mc); 49 }; 50 51