浏览代码

Back to 1.6 version

rdb 17 年之前
父节点
当前提交
1243548892
共有 1 个文件被更改,包括 12 次插入0 次删除
  1. 12 0
      panda/src/pgui/pgButton.cxx

+ 12 - 0
panda/src/pgui/pgButton.cxx

@@ -69,6 +69,7 @@ PGButton(const PGButton &copy) :
 ////////////////////////////////////////////////////////////////////
 PandaNode *PGButton::
 make_copy() const {
+  LightReMutexHolder holder(_lock);
   return new PGButton(*this);
 }
 
@@ -80,6 +81,7 @@ make_copy() const {
 ////////////////////////////////////////////////////////////////////
 void PGButton::
 enter_region(const MouseWatcherParameter &param) {
+  LightReMutexHolder holder(_lock);
   if (get_active()) {
     set_state(_button_down ? S_depressed : S_rollover);
   }
@@ -94,6 +96,7 @@ enter_region(const MouseWatcherParameter &param) {
 ////////////////////////////////////////////////////////////////////
 void PGButton::
 exit_region(const MouseWatcherParameter &param) {
+  LightReMutexHolder holder(_lock);
   if (get_active()) {
     set_state(S_ready);
   }
@@ -109,6 +112,7 @@ exit_region(const MouseWatcherParameter &param) {
 ////////////////////////////////////////////////////////////////////
 void PGButton::
 press(const MouseWatcherParameter &param, bool background) {
+  LightReMutexHolder holder(_lock);
   if (has_click_button(param.get_button())) {
     if (get_active()) {
       _button_down = true;
@@ -127,6 +131,7 @@ press(const MouseWatcherParameter &param, bool background) {
 ////////////////////////////////////////////////////////////////////
 void PGButton::
 release(const MouseWatcherParameter &param, bool background) {
+  LightReMutexHolder holder(_lock);
   if (has_click_button(param.get_button())) {
     _button_down = false;
     if (get_active()) {
@@ -149,6 +154,7 @@ release(const MouseWatcherParameter &param, bool background) {
 ////////////////////////////////////////////////////////////////////
 void PGButton::
 click(const MouseWatcherParameter &param) {
+  LightReMutexHolder holder(_lock);
   PGMouseWatcherParameter *ep = new PGMouseWatcherParameter(param);
   string event = get_click_event(param.get_button());
   play_sound(event);
@@ -170,6 +176,7 @@ click(const MouseWatcherParameter &param) {
 ////////////////////////////////////////////////////////////////////
 void PGButton::
 setup(const string &label, float bevel) {
+  LightReMutexHolder holder(_lock);
   clear_state_def(S_ready);
   clear_state_def(S_depressed);
   clear_state_def(S_rollover);
@@ -226,6 +233,7 @@ setup(const string &label, float bevel) {
 void PGButton::
 setup(const NodePath &ready, const NodePath &depressed, 
       const NodePath &rollover, const NodePath &inactive) {
+  LightReMutexHolder holder(_lock);
   clear_state_def(S_ready);
   clear_state_def(S_depressed);
   clear_state_def(S_rollover);
@@ -246,6 +254,7 @@ setup(const NodePath &ready, const NodePath &depressed,
 ////////////////////////////////////////////////////////////////////
 void PGButton:: 
 set_active(bool active) {
+  LightReMutexHolder holder(_lock);
   if (active != get_active()) {
     PGItem::set_active(active);
     set_state(active ? S_ready : S_inactive);
@@ -262,6 +271,7 @@ set_active(bool active) {
 ////////////////////////////////////////////////////////////////////
 bool PGButton::
 add_click_button(const ButtonHandle &button) {
+  LightReMutexHolder holder(_lock);
   return _click_buttons.insert(button).second;
 }
 
@@ -276,6 +286,7 @@ add_click_button(const ButtonHandle &button) {
 ////////////////////////////////////////////////////////////////////
 bool PGButton::
 remove_click_button(const ButtonHandle &button) {
+  LightReMutexHolder holder(_lock);
   return (_click_buttons.erase(button) != 0);
 }
 
@@ -288,6 +299,7 @@ remove_click_button(const ButtonHandle &button) {
 ////////////////////////////////////////////////////////////////////
 bool PGButton::
 has_click_button(const ButtonHandle &button) {
+  LightReMutexHolder holder(_lock);
   return (_click_buttons.count(button) != 0);
 }