// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifndef __GTKSLIDERH__
-#define __GTKSLIDERH__
+#ifndef _WX_GTK_SLIDER_H_
+#define _WX_GTK_SLIDER_H_
// ----------------------------------------------------------------------------
// wxSlider
double m_pos;
int m_scrollEventType;
bool m_needThumbRelease;
+ bool m_blockScrollEvent;
protected:
virtual GdkWindow *GTKGetWindow(wxArrayGdkWindows& windows) const;
-private:
DECLARE_DYNAMIC_CLASS(wxSlider)
};
-#endif // __GTKSLIDERH__
+#endif // _WX_GTK_SLIDER_H_
// Common scroll event handling code for wxWindow and wxScrollBar
wxEventType GetScrollEventType(GtkRange* range);
- void BlockScrollEvent();
- void UnblockScrollEvent();
-
// position and size of the window
int m_x, m_y;
int m_width, m_height;
bool m_needsStyleChange:1; // May not be able to change
// background style until OnIdle
bool m_mouseButtonDown:1;
- bool m_blockScrollEvent:1;
bool m_showOnIdle:1; // postpone showing the window until idle
ProcessScrollEvent(win, wxEVT_SCROLL_THUMBRELEASE);
}
// Keep slider at an integral position
- win->BlockScrollEvent();
+ win->m_blockScrollEvent = true;
gtk_range_set_value(GTK_RANGE (win->m_widget), win->GetValue());
- win->UnblockScrollEvent();
+ win->m_blockScrollEvent = false;
}
}
}
m_pos = 0;
m_scrollEventType = 0;
m_needThumbRelease = false;
+ m_blockScrollEvent = false;
}
bool wxSlider::Create(wxWindow *parent,
return false;
}
- m_pos = 0;
- m_scrollEventType = 0;
- m_needThumbRelease = false;
-
if (style & wxSL_VERTICAL)
m_widget = gtk_vscale_new( (GtkAdjustment *) NULL );
else
{
if (GetValue() != value)
{
- BlockScrollEvent();
+ m_blockScrollEvent = true;
gtk_range_set_value(GTK_RANGE (m_widget), value);
- UnblockScrollEvent();
+ m_blockScrollEvent = false;
}
}
void wxSlider::SetRange( int minValue, int maxValue )
{
- BlockScrollEvent();
+ m_blockScrollEvent = true;
gtk_range_set_range(GTK_RANGE (m_widget), minValue, maxValue);
gtk_range_set_increments(GTK_RANGE (m_widget), 1, (maxValue - minValue + 9) / 10);
- UnblockScrollEvent();
+ m_blockScrollEvent = false;
}
int wxSlider::GetMin() const
void wxSlider::SetPageSize( int pageSize )
{
- BlockScrollEvent();
+ m_blockScrollEvent = true;
gtk_range_set_increments(GTK_RANGE (m_widget), GetLineSize(), pageSize);
- UnblockScrollEvent();
+ m_blockScrollEvent = false;
}
int wxSlider::GetPageSize() const
void wxSlider::SetLineSize( int lineSize )
{
- BlockScrollEvent();
+ m_blockScrollEvent = true;
gtk_range_set_increments(GTK_RANGE (m_widget), lineSize, GetPageSize());
- UnblockScrollEvent();
+ m_blockScrollEvent = false;
}
int wxSlider::GetLineSize() const
m_hasScrolling = false;
m_isScrolling = false;
m_mouseButtonDown = false;
- m_blockScrollEvent = false;
// initialize scrolling stuff
for ( int dir = 0; dir < ScrollDir_Max; dir++ )
return false;
}
-void wxWindowGTK::BlockScrollEvent()
-{
- wxASSERT(!m_blockScrollEvent);
- m_blockScrollEvent = true;
-}
-
-void wxWindowGTK::UnblockScrollEvent()
-{
- wxASSERT(m_blockScrollEvent);
- m_blockScrollEvent = false;
-}
-
void wxWindowGTK::SetScrollbar(int orient,
int pos,
int thumbVisible,