[Aptitude-svn-commit] r4134 - in branches/aptitude-0.3/aptitude: .
src/vscreen
Daniel Burrows
dburrows at costa.debian.org
Tue Sep 20 19:06:27 UTC 2005
Author: dburrows
Date: Tue Sep 20 19:06:24 2005
New Revision: 4134
Modified:
branches/aptitude-0.3/aptitude/ChangeLog
branches/aptitude-0.3/aptitude/src/vscreen/vs_multiplex.cc
branches/aptitude-0.3/aptitude/src/vscreen/vs_multiplex.h
Log:
Add a signal that's emitted when the currently visible widget changes
Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog (original)
+++ branches/aptitude-0.3/aptitude/ChangeLog Tue Sep 20 19:06:24 2005
@@ -1,5 +1,9 @@
2005-09-20 Daniel Burrows <dburrows at debian.org>
+ * src/vscreen/vs_multiplex.cc, src/vscreen/vs_multiplex.h:
+
+ Add a signal that is emitted when the visible widget changes.
+
* src/vscreen/vs_tree.cc:
Fix a silly compilation error.
Modified: branches/aptitude-0.3/aptitude/src/vscreen/vs_multiplex.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/vscreen/vs_multiplex.cc (original)
+++ branches/aptitude-0.3/aptitude/src/vscreen/vs_multiplex.cc Tue Sep 20 19:06:24 2005
@@ -269,13 +269,18 @@
if(visible_child!=children.end() && get_isfocussed())
visible_child->w->unfocussed();
+ list<child_info>::iterator old_visible = visible_child;
visible_child=new_visible;
if(visible_child!=children.end() && get_isfocussed())
visible_child->w->focussed();
- vscreen_queuelayout();
- vscreen_update();
+ if(visible_child != old_visible)
+ {
+ cycled();
+ vscreen_queuelayout();
+ vscreen_update();
+ }
}
void vs_multiplex::hide_widget(const vs_widget_ref &w)
@@ -310,6 +315,8 @@
if(visible_child!=children.end() && get_isfocussed())
visible_child->w->unfocussed();
+ list<child_info>::iterator old_visible = visible_child;
+
if(new_visible==visible_child)
visible_child=children.end();
else
@@ -317,10 +324,15 @@
if(visible_child!=children.end() && get_isfocussed())
visible_child->w->focussed();
- }
- vscreen_queuelayout();
- vscreen_update();
+
+ if(visible_child != old_visible)
+ {
+ cycled();
+ vscreen_queuelayout();
+ vscreen_update();
+ }
+ }
}
void vs_multiplex::show_widget_bare(vscreen_widget &w)
@@ -444,11 +456,7 @@
++new_visible;
}
- if(visible_child!=new_visible)
- {
- vscreen_queuelayout();
- vscreen_update();
- }
+ list<child_info>::iterator old_visible = visible_child;
if(visible_child!=children.end() && get_isfocussed())
visible_child->w->unfocussed();
@@ -457,6 +465,14 @@
if(visible_child!=children.end() && get_isfocussed())
visible_child->w->focussed();
+
+
+ if(visible_child != old_visible)
+ {
+ cycled();
+ vscreen_queuelayout();
+ vscreen_update();
+ }
}
}
@@ -487,11 +503,7 @@
--new_visible;
}
- if(visible_child!=new_visible)
- {
- vscreen_queuelayout();
- vscreen_update();
- }
+ list<child_info>::iterator old_visible = visible_child;
if(visible_child!=children.end() && get_isfocussed())
visible_child->w->unfocussed();
@@ -500,6 +512,14 @@
if(visible_child!=children.end() && get_isfocussed())
visible_child->w->focussed();
+
+ if(visible_child != old_visible)
+ {
+ cycled();
+
+ vscreen_queuelayout();
+ vscreen_update();
+ }
}
}
Modified: branches/aptitude-0.3/aptitude/src/vscreen/vs_multiplex.h
==============================================================================
--- branches/aptitude-0.3/aptitude/src/vscreen/vs_multiplex.h (original)
+++ branches/aptitude-0.3/aptitude/src/vscreen/vs_multiplex.h Tue Sep 20 19:06:24 2005
@@ -149,6 +149,9 @@
// These cycle forward and backwards through the list of visible items.
void cycle_forward();
void cycle_backward();
+
+ /** Emitted when the currently visible widget changes. */
+ sigc::signal0<void> cycled;
};
typedef ref_ptr<vs_multiplex> vs_multiplex_ref;
More information about the Aptitude-svn-commit
mailing list