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

游戏引擎

开发平台:

C++ Builder

  1. /** 
  2.  * @file llcheckboxctrl.h
  3.  * @brief LLCheckBoxCtrl base class
  4.  *
  5.  * $LicenseInfo:firstyear=2001&license=viewergpl$
  6.  * 
  7.  * Copyright (c) 2001-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 LL_LLCHECKBOXCTRL_H
  33. #define LL_LLCHECKBOXCTRL_H
  34. #include "lluictrl.h"
  35. #include "llbutton.h"
  36. #include "lltextbox.h"
  37. #include "v4color.h"
  38. //
  39. // Constants
  40. //
  41. const BOOL RADIO_STYLE = TRUE;
  42. const BOOL CHECK_STYLE = FALSE;
  43. //
  44. // Classes
  45. //
  46. class LLFontGL;
  47. class LLViewBorder;
  48. class LLCheckBoxCtrl
  49. : public LLUICtrl
  50. {
  51. public:
  52. struct Params 
  53. : public LLInitParam::Block<Params, LLUICtrl::Params>
  54. {
  55. Optional<LLUIColor> text_enabled_color;
  56. Optional<LLUIColor> text_disabled_color;
  57. Optional<bool> initial_value; // override LLUICtrl initial_value
  58. Optional<LLTextBox::Params> label_text;
  59. Optional<LLButton::Params> check_button;
  60. Ignored radio_style;
  61. Params();
  62. };
  63. virtual ~LLCheckBoxCtrl();
  64. protected:
  65. LLCheckBoxCtrl(const Params&);
  66. friend class LLUICtrlFactory;
  67. public:
  68. // LLView interface
  69. virtual void setEnabled( BOOL b );
  70. virtual void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
  71. // LLUICtrl interface
  72. virtual void setValue(const LLSD& value );
  73. virtual LLSD getValue() const;
  74. BOOL get() { return (BOOL)getValue().asBoolean(); }
  75. void set(BOOL value) { setValue(value); }
  76. virtual void setTentative(BOOL b);
  77. virtual BOOL getTentative() const;
  78. virtual BOOL setLabelArg( const std::string& key, const LLStringExplicit& text );
  79. virtual void clear();
  80. virtual void onCommit();
  81. // LLCheckBoxCtrl interface
  82. virtual BOOL toggle() { return mButton->toggleState(); } // returns new state
  83. void setEnabledColor( const LLColor4 &color ) { mTextEnabledColor = color; }
  84. void setDisabledColor( const LLColor4 &color ) { mTextDisabledColor = color; }
  85. void setLabel( const LLStringExplicit& label );
  86. std::string getLabel() const;
  87. void setFont( const LLFontGL* font ) { mFont = font; }
  88. const LLFontGL* getFont() { return mFont; }
  89. virtual void setControlName(const std::string& control_name, LLView* context);
  90. void onButtonPress(const LLSD& data);
  91. virtual BOOL isDirty() const; // Returns TRUE if the user has modified this control.
  92. virtual void resetDirty(); // Clear dirty state
  93. protected:
  94. // note: value is stored in toggle state of button
  95. LLButton* mButton;
  96. LLTextBox* mLabel;
  97. const LLFontGL* mFont;
  98. LLUIColor mTextEnabledColor;
  99. LLUIColor mTextDisabledColor;
  100. };
  101. // Build time optimization, generate once in .cpp file
  102. #ifndef LLCHECKBOXCTRL_CPP
  103. extern template class LLCheckBoxCtrl* LLView::getChild<class LLCheckBoxCtrl>(
  104. const std::string& name, BOOL recurse) const;
  105. #endif
  106. #endif  // LL_LLCHECKBOXCTRL_H