llctrlselectioninterface.h
上传用户:king477883
上传日期:2021-03-01
资源大小:9553k
文件大小:4k
源码类别:

游戏引擎

开发平台:

C++ Builder

  1. /** 
  2.  * @file llctrlselectioninterface.h
  3.  * @brief Programmatic selection of items in a list.
  4.  *
  5.  * $LicenseInfo:firstyear=2006&license=viewergpl$
  6.  * 
  7.  * Copyright (c) 2006-2010, Linden Research, Inc.
  8.  * 
  9.  * Second Life Viewer Source Code
  10.  * The source code in this file ("Source Code") is provided by Linden Lab
  11.  * to you under the terms of the GNU General Public License, version 2.0
  12.  * ("GPL"), unless you have obtained a separate licensing agreement
  13.  * ("Other License"), formally executed by you and Linden Lab.  Terms of
  14.  * the GPL can be found in doc/GPL-license.txt in this distribution, or
  15.  * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
  16.  * 
  17.  * There are special exceptions to the terms and conditions of the GPL as
  18.  * it is applied to this Source Code. View the full text of the exception
  19.  * in the file doc/FLOSS-exception.txt in this software distribution, or
  20.  * online at
  21.  * http://secondlifegrid.net/programs/open_source/licensing/flossexception
  22.  * 
  23.  * By copying, modifying or distributing this software, you acknowledge
  24.  * that you have read and understood your obligations described above,
  25.  * and agree to abide by those obligations.
  26.  * 
  27.  * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
  28.  * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
  29.  * COMPLETENESS OR PERFORMANCE.
  30.  * $/LicenseInfo$
  31.  */
  32. #ifndef LLCTRLSELECTIONINTERFACE_H
  33. #define LLCTRLSELECTIONINTERFACE_H
  34. #include "stdtypes.h"
  35. #include "stdenums.h"
  36. #include "llstring.h"
  37. class LLSD;
  38. class LLUUID;
  39. class LLScrollListItem;
  40. class LLCtrlSelectionInterface
  41. {
  42. public:
  43. virtual ~LLCtrlSelectionInterface();
  44. enum EOperation
  45. {
  46. OP_DELETE = 1,
  47. OP_SELECT,
  48. OP_DESELECT,
  49. };
  50. virtual BOOL getCanSelect() const = 0;
  51. virtual S32 getItemCount() const = 0;
  52. virtual BOOL selectFirstItem() = 0;
  53. virtual BOOL selectNthItem( S32 index ) = 0;
  54. virtual BOOL selectItemRange( S32 first, S32 last ) = 0;
  55. virtual S32 getFirstSelectedIndex() const = 0;
  56. // TomY TODO: Simply cast the UUIDs to LLSDs, using the selectByValue function
  57. virtual BOOL setCurrentByID( const LLUUID& id ) = 0;
  58. virtual LLUUID getCurrentID() const = 0;
  59. BOOL selectByValue(const LLSD value);
  60. BOOL deselectByValue(const LLSD value);
  61. virtual BOOL setSelectedByValue(const LLSD& value, BOOL selected) = 0;
  62. virtual LLSD getSelectedValue() = 0;
  63. virtual BOOL isSelected(const LLSD& value) const = 0;
  64. virtual BOOL operateOnSelection(EOperation op) = 0;
  65. virtual BOOL operateOnAll(EOperation op) = 0;
  66. };
  67. class LLCtrlListInterface : public LLCtrlSelectionInterface
  68. {
  69. public:
  70. virtual ~LLCtrlListInterface();
  71. virtual void addColumn(const LLSD& column, EAddPosition pos = ADD_BOTTOM) = 0;
  72. virtual void clearColumns() = 0;
  73. virtual void setColumnLabel(const std::string& column, const std::string& label) = 0;
  74. // TomY TODO: Document this
  75. virtual LLScrollListItem* addElement(const LLSD& value, EAddPosition pos = ADD_BOTTOM, void* userdata = NULL) = 0;
  76. LLScrollListItem* addSimpleElement(const std::string& value); // defaults to bottom
  77. LLScrollListItem* addSimpleElement(const std::string& value, EAddPosition pos); // defaults to no LLSD() id
  78. virtual LLScrollListItem* addSimpleElement(const std::string& value, EAddPosition pos, const LLSD& id) = 0;
  79. virtual void clearRows() = 0;
  80. virtual void sortByColumn(const std::string& name, BOOL ascending) = 0;
  81. };
  82. class LLCtrlScrollInterface
  83. {
  84. public:
  85. virtual ~LLCtrlScrollInterface();
  86. virtual S32 getScrollPos() const = 0;
  87. virtual void setScrollPos( S32 pos ) = 0;
  88. virtual void scrollToShowSelected() = 0;
  89. };
  90. #endif