]> git.saurik.com Git - wxWidgets.git/commitdiff
centralized the handling of border styles; added borders support for wxListBox and...
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 16 Apr 2006 23:38:26 +0000 (23:38 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 16 Apr 2006 23:38:26 +0000 (23:38 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38771 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
include/wx/gtk/window.h
src/gtk/dataview.cpp
src/gtk/listbox.cpp
src/gtk/textctrl.cpp
src/gtk/window.cpp

index 21dfdb3b5a4b0b87040c30e2bddfa8def114f52e..01d4dbd98215375bcb1c96ca6260e53ffce1d5b2 100644 (file)
@@ -203,6 +203,7 @@ wxGTK:
 - Fixed problems with CJK input method.
 - Implemented ScrollLines/Pages() for all windows (Paul Cornett).
 - Support underlined fonts in wxTextCtrl.
+- Support all border styles; wxListBox honours the borders now
 
 wxMac:
 
index 44b7940a8e7bdeceddca014a559137a755e5b28a..689a81c2554bf6a58db301669a0c1a6263233528 100644 (file)
@@ -277,6 +277,9 @@ protected:
     // ApplyWidgetStyle -- override this, not ApplyWidgetStyle
     virtual void DoApplyWidgetStyle(GtkRcStyle *style);
 
+    // sets the border of a given GtkScrolledWindow from a wx style
+    static void GtkScrolledWindowSetBorder(GtkWidget* w, int style);
+
 protected:
     // GtkAdjustment to be used by Scroll{Lines,Pages}
     void SetVScrollAdjustment(GtkAdjustment* adj);
index ddfe171080624645076f37b771ac71cce3a9005e..55767284db6e75adfb89cba7787a7b7bf04a2c4e 100644 (file)
@@ -1407,7 +1407,8 @@ bool wxDataViewCtrl::Create(wxWindow *parent, wxWindowID id,
     }
 
     m_widget = gtk_scrolled_window_new (NULL, NULL);
-    gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (m_widget), GTK_SHADOW_IN);
+
+    GtkScrolledWindowSetBorder(m_widget, style);
 
     m_treeview = gtk_tree_view_new();
     gtk_container_add (GTK_CONTAINER (m_widget), m_treeview);
index 02a7a5d88f079ad02285a1f4cd937839f93eeb00..fbe7e88e41ad35fc2d3d4fec6555847c560a04ec 100644 (file)
@@ -467,6 +467,9 @@ bool wxListBox::Create( wxWindow *parent, wxWindowID id,
         GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC );
     }
 
+
+    GtkScrolledWindowSetBorder(m_widget, style);
+
     m_treeview = GTK_TREE_VIEW( gtk_tree_view_new( ) );
 
     //wxListBox doesn't have a header :)
index 5a550f140b07037f3592462f98279adb540f9b89..53c0f6939623b77458ed99c23da14f15e4642e0e 100644 (file)
@@ -600,8 +600,7 @@ bool wxTextCtrl::Create( wxWindow *parent,
 
         gtk_text_view_set_wrap_mode( GTK_TEXT_VIEW( m_text ), wrap );
 
-        if (!HasFlag(wxNO_BORDER))
-            gtk_scrolled_window_set_shadow_type( GTK_SCROLLED_WINDOW(m_widget), GTK_SHADOW_IN );
+        GtkScrolledWindowSetBorder(m_widget, style);
 
         gtk_widget_add_events( GTK_WIDGET(m_text), GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK );
 
index 70d044e9b8f3413ff0245c79cd091ff82692981f..b582d55476d8f226ced2f4037abd3729ae774ca1 100644 (file)
@@ -4334,6 +4334,29 @@ void wxWindowGTK::ScrollWindow( int dx, int dy, const wxRect* WXUNUSED(rect) )
     m_clipPaintRegion = false;
 }
 
+void wxWindowGTK::GtkScrolledWindowSetBorder(GtkWidget* w, int wxstyle)
+{
+    //RN: Note that static controls usually have no border on gtk, so maybe
+    //it makes sense to treat that as simply no border at the wx level 
+    //as well...
+    if (!(wxstyle & wxNO_BORDER) && !(wxstyle & wxBORDER_STATIC))
+    {
+        GtkShadowType gtkstyle;
+        
+        if(wxstyle & wxBORDER_RAISED)
+            gtkstyle = GTK_SHADOW_OUT;
+        else if (wxstyle & wxBORDER_SUNKEN)
+            gtkstyle = GTK_SHADOW_IN;
+        else if (wxstyle & wxBORDER_DOUBLE)
+            gtkstyle = GTK_SHADOW_ETCHED_IN;
+        else //default
+            gtkstyle = GTK_SHADOW_IN;
+
+        gtk_scrolled_window_set_shadow_type( GTK_SCROLLED_WINDOW(w), 
+                                             gtkstyle );
+    }
+}
+
 void wxWindowGTK::SetWindowStyleFlag( long style )
 {
     // Updates the internal variable. NB: Now m_windowStyle bits carry the _new_ style values already