HeaderListener: Replaced the generic hook by more detailed ones.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31884 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -77,6 +77,30 @@ HeaderListener::~HeaderListener()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
HeaderListener::HeaderWidthChanged(Header* header)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
HeaderListener::HeaderWidthRestrictionsChanged(Header* header)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
HeaderListener::HeaderValueChanged(Header* header)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
HeaderListener::HeaderRendererChanged(Header* header)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark - Header
|
// #pragma mark - Header
|
||||||
|
|
||||||
|
|
||||||
@@ -142,7 +166,7 @@ Header::SetWidth(float width)
|
|||||||
{
|
{
|
||||||
if (width != fWidth) {
|
if (width != fWidth) {
|
||||||
fWidth = width;
|
fWidth = width;
|
||||||
NotifyPropertiesChanged(true, true);
|
NotifyWidthChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -152,7 +176,7 @@ Header::SetMinWidth(float width)
|
|||||||
{
|
{
|
||||||
if (width != fMinWidth) {
|
if (width != fMinWidth) {
|
||||||
fMinWidth = width;
|
fMinWidth = width;
|
||||||
NotifyPropertiesChanged(false, false);
|
NotifyWidthRestrictionsChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -162,7 +186,7 @@ Header::SetMaxWidth(float width)
|
|||||||
{
|
{
|
||||||
if (width != fMaxWidth) {
|
if (width != fMaxWidth) {
|
||||||
fMaxWidth = width;
|
fMaxWidth = width;
|
||||||
NotifyPropertiesChanged(false, false);
|
NotifyWidthRestrictionsChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -172,7 +196,7 @@ Header::SetPreferredWidth(float width)
|
|||||||
{
|
{
|
||||||
if (width != fPreferredWidth) {
|
if (width != fPreferredWidth) {
|
||||||
fPreferredWidth = width;
|
fPreferredWidth = width;
|
||||||
NotifyPropertiesChanged(false, false);
|
NotifyWidthRestrictionsChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -189,7 +213,7 @@ Header::SetResizable(bool resizable)
|
|||||||
{
|
{
|
||||||
if (resizable != fResizable) {
|
if (resizable != fResizable) {
|
||||||
fResizable = resizable;
|
fResizable = resizable;
|
||||||
NotifyPropertiesChanged(false, false);
|
NotifyWidthRestrictionsChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -206,7 +230,7 @@ void
|
|||||||
Header::SetValue(const BVariant& value)
|
Header::SetValue(const BVariant& value)
|
||||||
{
|
{
|
||||||
fValue = value;
|
fValue = value;
|
||||||
NotifyPropertiesChanged(true, false);
|
NotifyValueChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -220,10 +244,7 @@ Header::ModelIndex() const
|
|||||||
void
|
void
|
||||||
Header::SetModelIndex(int32 index)
|
Header::SetModelIndex(int32 index)
|
||||||
{
|
{
|
||||||
if (index != fModelIndex) {
|
fModelIndex = index;
|
||||||
fModelIndex = index;
|
|
||||||
NotifyPropertiesChanged(true, false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -239,7 +260,7 @@ Header::SetHeaderRenderer(HeaderRenderer* renderer)
|
|||||||
{
|
{
|
||||||
if (renderer != fRenderer) {
|
if (renderer != fRenderer) {
|
||||||
fRenderer = renderer;
|
fRenderer = renderer;
|
||||||
NotifyPropertiesChanged(true, false);
|
NotifyRendererChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -259,11 +280,41 @@ Header::RemoveListener(HeaderListener* listener)
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
Header::NotifyPropertiesChanged(bool redrawNeeded, bool relayoutNeeded)
|
Header::NotifyWidthChanged()
|
||||||
{
|
{
|
||||||
for (int32 i = fListeners.CountItems() - 1; i >= 0; i--) {
|
for (int32 i = fListeners.CountItems() - 1; i >= 0; i--) {
|
||||||
HeaderListener* listener = fListeners.ItemAt(i);
|
HeaderListener* listener = fListeners.ItemAt(i);
|
||||||
listener->HeaderPropertiesChanged(this, redrawNeeded, relayoutNeeded);
|
listener->HeaderWidthChanged(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
Header::NotifyWidthRestrictionsChanged()
|
||||||
|
{
|
||||||
|
for (int32 i = fListeners.CountItems() - 1; i >= 0; i--) {
|
||||||
|
HeaderListener* listener = fListeners.ItemAt(i);
|
||||||
|
listener->HeaderWidthRestrictionsChanged(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
Header::NotifyValueChanged()
|
||||||
|
{
|
||||||
|
for (int32 i = fListeners.CountItems() - 1; i >= 0; i--) {
|
||||||
|
HeaderListener* listener = fListeners.ItemAt(i);
|
||||||
|
listener->HeaderValueChanged(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
Header::NotifyRendererChanged()
|
||||||
|
{
|
||||||
|
for (int32 i = fListeners.CountItems() - 1; i >= 0; i--) {
|
||||||
|
HeaderListener* listener = fListeners.ItemAt(i);
|
||||||
|
listener->HeaderRendererChanged(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -625,7 +676,35 @@ HeaderView::HeaderMoved(HeaderModel* model, int32 fromIndex, int32 toIndex)
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
HeaderView::HeaderPropertiesChanged(Header* header, bool redrawNeeded,
|
HeaderView::HeaderWidthChanged(Header* header)
|
||||||
|
{
|
||||||
|
_HeaderPropertiesChanged(header, true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
HeaderView::HeaderWidthRestrictionsChanged(Header* header)
|
||||||
|
{
|
||||||
|
// TODO:...
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
HeaderView::HeaderValueChanged(Header* header)
|
||||||
|
{
|
||||||
|
_HeaderPropertiesChanged(header, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
HeaderView::HeaderRendererChanged(Header* header)
|
||||||
|
{
|
||||||
|
_HeaderPropertiesChanged(header, true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
HeaderView::_HeaderPropertiesChanged(Header* header, bool redrawNeeded,
|
||||||
bool relayoutNeeded)
|
bool relayoutNeeded)
|
||||||
{
|
{
|
||||||
if (!redrawNeeded && !relayoutNeeded)
|
if (!redrawNeeded && !relayoutNeeded)
|
||||||
|
|||||||
@@ -47,8 +47,10 @@ class HeaderListener {
|
|||||||
public:
|
public:
|
||||||
virtual ~HeaderListener();
|
virtual ~HeaderListener();
|
||||||
|
|
||||||
virtual void HeaderPropertiesChanged(Header* header,
|
virtual void HeaderWidthChanged(Header* header);
|
||||||
bool redrawNeeded, bool relayoutNeeded) = 0;
|
virtual void HeaderWidthRestrictionsChanged(Header* header);
|
||||||
|
virtual void HeaderValueChanged(Header* header);
|
||||||
|
virtual void HeaderRendererChanged(Header* header);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -85,8 +87,10 @@ public:
|
|||||||
void RemoveListener(HeaderListener* listener);
|
void RemoveListener(HeaderListener* listener);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void NotifyPropertiesChanged(bool redrawNeeded,
|
void NotifyWidthChanged();
|
||||||
bool relayoutNeeded);
|
void NotifyWidthRestrictionsChanged();
|
||||||
|
void NotifyValueChanged();
|
||||||
|
void NotifyRendererChanged();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
typedef BObjectList<HeaderListener> ListenerList;
|
typedef BObjectList<HeaderListener> ListenerList;
|
||||||
@@ -180,9 +184,13 @@ private:
|
|||||||
int32 fromIndex, int32 toIndex);
|
int32 fromIndex, int32 toIndex);
|
||||||
|
|
||||||
// HeaderListener
|
// HeaderListener
|
||||||
virtual void HeaderPropertiesChanged(Header* header,
|
virtual void HeaderWidthChanged(Header* header);
|
||||||
bool redrawNeeded, bool relayoutNeeded);
|
virtual void HeaderWidthRestrictionsChanged(Header* header);
|
||||||
|
virtual void HeaderValueChanged(Header* header);
|
||||||
|
virtual void HeaderRendererChanged(Header* header);
|
||||||
|
|
||||||
|
void _HeaderPropertiesChanged(Header* header,
|
||||||
|
bool redrawNeeded, bool relayoutNeeded);
|
||||||
void _InvalidateHeadersLayout(int32 firstIndex);
|
void _InvalidateHeadersLayout(int32 firstIndex);
|
||||||
void _InvalidateHeaders(int32 firstIndex,
|
void _InvalidateHeaders(int32 firstIndex,
|
||||||
int32 endIndex);
|
int32 endIndex);
|
||||||
|
|||||||
Reference in New Issue
Block a user