]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/scrolbar.cpp
//... => /* ... */
[wxWidgets.git] / src / motif / scrolbar.cpp
index 84fa92fe64f9fd644ecc97ad1d280af696263e84..f6f2df3d3635727e026d02a508b8ab0bf9be2d73 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     17/09/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -22,7 +22,7 @@
 
 #include <wx/motif/private.h>
 
-void wxScrollBarCallback(Widget widget, XtPointer clientData,
+static void wxScrollBarCallback(Widget widget, XtPointer clientData,
                         XmScaleCallbackStruct *cbs);
 
 #if !USE_SHARED_LIBRARY
@@ -40,14 +40,16 @@ bool wxScrollBar::Create(wxWindow *parent, wxWindowID id,
         return FALSE;
     parent->AddChild(this);
     SetName(name);
-       SetValidator(validator);
-    
+    m_backgroundColour = parent->GetBackgroundColour();
+    m_foregroundColour = parent->GetForegroundColour();
+    SetValidator(validator);
+
     m_windowStyle = style;
 
     if ( id == -1 )
-           m_windowId = (int)NewControlId();
+        m_windowId = (int)NewControlId();
     else
-           m_windowId = id;
+        m_windowId = id;
 
     int x = pos.x;
     int y = pos.y;
@@ -91,7 +93,7 @@ bool wxScrollBar::Create(wxWindow *parent, wxWindowID id,
 
     SetCanAddEventHandler(TRUE);
     AttachWidget (parent, m_mainWidget, (WXWidget) NULL, x, y, width, height);
-    ChangeColour(m_mainWidget);
+    ChangeBackgroundColour();
 
     return TRUE;
 }
@@ -100,7 +102,7 @@ wxScrollBar::~wxScrollBar()
 {
 }
 
-void wxScrollBar::SetPosition(int pos)
+void wxScrollBar::SetThumbPosition(int pos)
 {
        if (m_mainWidget)
        {
@@ -110,7 +112,7 @@ void wxScrollBar::SetPosition(int pos)
        }
 }
 
-int wxScrollBar::GetPosition() const
+int wxScrollBar::GetThumbPosition() const
 {
        if (m_mainWidget)
        {
@@ -146,11 +148,31 @@ void wxScrollBar::SetScrollbar(int position, int thumbSize, int range, int pageS
 
 void wxScrollBar::Command(wxCommandEvent& event)
 {
-    SetPosition(event.m_commandInt);
+    SetThumbPosition(event.m_commandInt);
     ProcessCommand(event);
 }
 
-void wxScrollBarCallback(Widget widget, XtPointer clientData,
+void wxScrollBar::ChangeFont(bool keepOriginalSize)
+{
+    // TODO
+    // Do anything for a scrollbar? A font will never be seen.
+}
+
+void wxScrollBar::ChangeBackgroundColour()
+{
+    wxWindow::ChangeBackgroundColour();
+
+    XtVaSetValues ((Widget) GetMainWidget(),
+        XmNtroughColor, m_backgroundColour.AllocColour(XtDisplay((Widget) GetMainWidget())),
+        NULL);
+}
+
+void wxScrollBar::ChangeForegroundColour()
+{
+    wxWindow::ChangeForegroundColour();
+}
+
+static void wxScrollBarCallback(Widget widget, XtPointer clientData,
                         XmScaleCallbackStruct *cbs)
 {
     wxScrollBar *scrollBar = (wxScrollBar *)clientData;