pgui: Some code cleanup for PGItem

This commit is contained in:
rdb 2021-02-21 10:15:54 +01:00
parent a05405c475
commit 5c4909b4ab
3 changed files with 21 additions and 34 deletions

View File

@ -347,9 +347,8 @@ void PGItem::
r_prepare_scene(GraphicsStateGuardianBase *gsg, const RenderState *node_state, r_prepare_scene(GraphicsStateGuardianBase *gsg, const RenderState *node_state,
GeomTransformer &transformer, Thread *current_thread) { GeomTransformer &transformer, Thread *current_thread) {
LightReMutexHolder holder(_lock); LightReMutexHolder holder(_lock);
StateDefs::iterator di; for (StateDef &def : _state_defs) {
for (di = _state_defs.begin(); di != _state_defs.end(); ++di) { NodePath &root = def._root;
NodePath &root = (*di)._root;
if (!root.is_empty()) { if (!root.is_empty()) {
PandaNode *child = root.node(); PandaNode *child = root.node();
CPT(RenderState) child_state = node_state->compose(child->get_state()); CPT(RenderState) child_state = node_state->compose(child->get_state());
@ -375,9 +374,8 @@ xform(const LMatrix4 &mat) {
_frame.set(ll[0], ur[0], ll[2], ur[2]); _frame.set(ll[0], ur[0], ll[2], ur[2]);
// Transform the individual states and their frame styles. // Transform the individual states and their frame styles.
StateDefs::iterator di; for (StateDef &def : _state_defs) {
for (di = _state_defs.begin(); di != _state_defs.end(); ++di) { NodePath &root = def._root;
NodePath &root = (*di)._root;
// Apply the matrix to the previous transform. // Apply the matrix to the previous transform.
root.set_transform(root.get_transform()->compose(TransformState::make_mat(mat))); root.set_transform(root.get_transform()->compose(TransformState::make_mat(mat)));
@ -386,8 +384,8 @@ xform(const LMatrix4 &mat) {
gr.apply_attribs(root.node()); gr.apply_attribs(root.node());
// Transform the frame style too. // Transform the frame style too.
if ((*di)._frame_style.xform(mat)) { if (def._frame_style.xform(mat)) {
(*di)._frame_stale = true; def._frame_stale = true;
} }
} }
mark_internal_bounds_stale(); mark_internal_bounds_stale();
@ -767,9 +765,7 @@ move(const MouseWatcherParameter &param) {
*/ */
void PGItem:: void PGItem::
background_press(const MouseWatcherParameter &param) { background_press(const MouseWatcherParameter &param) {
BackgroundFocus::const_iterator fi; for (PGItem *item : _background_focus) {
for (fi = _background_focus.begin(); fi != _background_focus.end(); ++fi) {
PGItem *item = *fi;
if (!item->get_focus()) { if (!item->get_focus()) {
item->press(param, true); item->press(param, true);
} }
@ -781,9 +777,7 @@ background_press(const MouseWatcherParameter &param) {
*/ */
void PGItem:: void PGItem::
background_release(const MouseWatcherParameter &param) { background_release(const MouseWatcherParameter &param) {
BackgroundFocus::const_iterator fi; for (PGItem *item : _background_focus) {
for (fi = _background_focus.begin(); fi != _background_focus.end(); ++fi) {
PGItem *item = *fi;
if (!item->get_focus()) { if (!item->get_focus()) {
item->release(param, true); item->release(param, true);
} }
@ -795,9 +789,7 @@ background_release(const MouseWatcherParameter &param) {
*/ */
void PGItem:: void PGItem::
background_keystroke(const MouseWatcherParameter &param) { background_keystroke(const MouseWatcherParameter &param) {
BackgroundFocus::const_iterator fi; for (PGItem *item : _background_focus) {
for (fi = _background_focus.begin(); fi != _background_focus.end(); ++fi) {
PGItem *item = *fi;
if (!item->get_focus()) { if (!item->get_focus()) {
item->keystroke(param, true); item->keystroke(param, true);
} }
@ -809,9 +801,7 @@ background_keystroke(const MouseWatcherParameter &param) {
*/ */
void PGItem:: void PGItem::
background_candidate(const MouseWatcherParameter &param) { background_candidate(const MouseWatcherParameter &param) {
BackgroundFocus::const_iterator fi; for (PGItem *item : _background_focus) {
for (fi = _background_focus.begin(); fi != _background_focus.end(); ++fi) {
PGItem *item = *fi;
if (!item->get_focus()) { if (!item->get_focus()) {
item->candidate(param, true); item->candidate(param, true);
} }
@ -1165,11 +1155,10 @@ mouse_to_local(const LPoint2 &mouse_point) const {
} }
/** /**
* Called when the user changes the frame size. * Called when the user changes the frame size. Assumes the lock is held.
*/ */
void PGItem:: void PGItem::
frame_changed() { frame_changed() {
LightReMutexHolder holder(_lock);
mark_frames_stale(); mark_frames_stale();
if (_notify != nullptr) { if (_notify != nullptr) {
_notify->item_frame_changed(this); _notify->item_frame_changed(this);
@ -1202,6 +1191,7 @@ do_get_state_def(int state) {
/** /**
* Ensures there is a slot in the array for the given state definition. * Ensures there is a slot in the array for the given state definition.
* Assumes the lock is already held.
*/ */
void PGItem:: void PGItem::
slot_state_def(int state) { slot_state_def(int state) {
@ -1212,6 +1202,7 @@ slot_state_def(int state) {
/** /**
* Generates a new instance of the frame geometry for the indicated state. * Generates a new instance of the frame geometry for the indicated state.
* Assumes the lock is already held.
*/ */
void PGItem:: void PGItem::
update_frame(int state) { update_frame(int state) {
@ -1234,15 +1225,14 @@ update_frame(int state) {
/** /**
* Marks all the frames in all states stale, so that they will be regenerated * Marks all the frames in all states stale, so that they will be regenerated
* the next time each state is requested. * the next time each state is requested. Assumes the lock is already held.
*/ */
void PGItem:: void PGItem::
mark_frames_stale() { mark_frames_stale() {
StateDefs::iterator di; for (StateDef &def : _state_defs) {
for (di = _state_defs.begin(); di != _state_defs.end(); ++di) {
// Remove the old frame, if any. // Remove the old frame, if any.
(*di)._frame.remove_node(); def._frame.remove_node();
(*di)._frame_stale = true; def._frame_stale = true;
} }
mark_internal_bounds_stale(); mark_internal_bounds_stale();
} }
@ -1294,9 +1284,8 @@ clip_frame(ClipPoints &source_points, const LPlane &plane) const {
LPoint2 last_point(source_points.back()); LPoint2 last_point(source_points.back());
bool last_is_in = is_right(last_point - from2d, delta2d); bool last_is_in = is_right(last_point - from2d, delta2d);
bool all_in = last_is_in; bool all_in = last_is_in;
ClipPoints::const_iterator pi;
for (pi = source_points.begin(); pi != source_points.end(); ++pi) { for (LPoint2 this_point : source_points) {
LPoint2 this_point(*pi);
bool this_is_in = is_right(this_point - from2d, delta2d); bool this_is_in = is_right(this_point - from2d, delta2d);
// There appears to be a compiler bug in gcc 4.0: we need to extract this // There appears to be a compiler bug in gcc 4.0: we need to extract this

View File

@ -284,11 +284,10 @@ remanage() {
} }
/** /**
* Called when the user changes the frame size. * Called when the user changes the frame size. Assumes the lock is held.
*/ */
void PGScrollFrame:: void PGScrollFrame::
frame_changed() { frame_changed() {
LightReMutexHolder holder(_lock);
PGVirtualFrame::frame_changed(); PGVirtualFrame::frame_changed();
_needs_remanage = true; _needs_remanage = true;
_needs_recompute_clip = true; _needs_recompute_clip = true;

View File

@ -551,11 +551,10 @@ recompute() {
} }
/** /**
* Called when the user changes the frame size. * Called when the user changes the frame size. Assumes the lock is held.
*/ */
void PGSliderBar:: void PGSliderBar::
frame_changed() { frame_changed() {
LightReMutexHolder holder(_lock);
PGItem::frame_changed(); PGItem::frame_changed();
_needs_remanage = true; _needs_remanage = true;
_needs_recompute = true; _needs_recompute = true;