]> git.saurik.com Git - wxWidgets.git/commitdiff
Using the best visual is now an option.
authorRobert Roebling <robert@roebling.de>
Mon, 31 Jan 2000 17:37:37 +0000 (17:37 +0000)
committerRobert Roebling <robert@roebling.de>
Mon, 31 Jan 2000 17:37:37 +0000 (17:37 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5760 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/app.tex
include/wx/app.h
src/gtk/app.cpp
src/gtk/minifram.cpp
src/gtk1/app.cpp
src/gtk1/minifram.cpp

index af67ba0e185a8ecfb5f7871b6cd323a3b718dea8..54648146b3649a804221e239d6ee87ac6089bc3d 100644 (file)
@@ -144,7 +144,18 @@ function will find the first top-level window (frame or dialog) and return that.
 
 \wxheading{See also}
 
-\helpref{wxApp::SetTopWindow}{wxappsettopwindow}
+\helpref{SetTopWindow}{wxappsettopwindow}
+
+\membersection{wxApp::GetUseBestVisual}\label{wxappgetusebestvisual}
+
+\constfunc{bool}{GetUseBestVisual}{\void}
+
+Returns TRUE if the application will use the best visual on system that support
+different visuals, FALSE otherwise.
+
+\wxheading{See also}
+
+\helpref{SetUseBestVisual}{wxappsetusebestvisual}
 
 \membersection{wxApp::ExitMainLoop}\label{wxappexitmainloop}
 
@@ -448,3 +459,20 @@ can be overridden by the user to change the default icons.
 
 \docparam{which}{One of the wxICON\_XXX defines and chooses which icon to return.}
 
+\membersection{wxApp::SetUseBestVisual}\label{wxappsetusebestvisual}
+
+\func{void}{SetUseBestVisual}{\param{bool}{ flag}}
+
+Allows the programmer to specify whether the application will use the best visual
+on system that support several visual on the same display. This is typically the
+case under Solaris and IRIX, where the default visual is only 8-bit but some apps
+are supposed to run in TrueColour mode.
+
+Note that this function has to be called in the constructor of the {\tt wxApp}
+instance and won't have any effect when called later on.
+
+This function currently only has effect under GTK.
+
+\wxheading{Parameters}
+
+\docparam{flag}{If TRUE, the app will use the best visual.}
index 7d408278bbf3a046f13cb6fa3474461b18e9dcd4..79d794857b64097060de8b3036f339459a9e36b3 100644 (file)
@@ -215,6 +215,10 @@ public:
     void SetWantDebugOutput( bool flag ) { m_wantDebugOutput = flag; }
     bool GetWantDebugOutput() const { return m_wantDebugOutput; }
 
+        // set use of best visual flag (see below)
+    void SetUseBestVisual( bool flag ) { m_useBestVisual = flag; }
+    bool GetUseBestVisual() const { return m_useBestVisual; }
+    
         // set/get printing mode: see wxPRINT_XXX constants.
         //
         // default behaviour is the normal one for Unix: always use PostScript
@@ -254,6 +258,10 @@ protected:
 
     // TRUE if the application wants to get debug output
     bool m_wantDebugOutput;
+    
+    // TRUE if the apps whats to use the best visual on systems where
+    // more than one are available (Sun, SGI, XFree86 4.0 ?)
+    bool m_useBestVisual;
 
 #if wxUSE_GUI
     // the main top level window - may be NULL
index 98327a2aee941a3c958e9ad2fb31147e92ccf649..9b13515ed41cf1ea66025cca230e1af6bd7da590 100644 (file)
@@ -250,6 +250,8 @@ wxApp::wxApp()
 #endif
 
     m_colorCube = (unsigned char*) NULL;
+    
+    m_useBestVisual = FALSE;
 }
 
 wxApp::~wxApp()
@@ -271,7 +273,8 @@ bool wxApp::OnInitGui()
        we make sure we get the best. this can sometimes be wasteful,
        of course, but what do these guys pay $30.000 for? */
        
-    if (gdk_visual_get_best() != gdk_visual_get_system())
+    if ((gdk_visual_get_best() != gdk_visual_get_system()) &&
+        (m_useBestVisual))
     {
         GdkVisual* vis = gdk_visual_get_best();
         gtk_widget_set_default_visual( vis );
index bdcc5ef8a99f2e61c266e8969a07e48a72f057a2..fb7412dba9b4be17b0a453a7e60d6ffbae8094e6 100644 (file)
@@ -35,8 +35,9 @@ extern bool g_isIdle;
 // data
 //-----------------------------------------------------------------------------
 
-extern bool   g_blockEventsOnDrag;
-extern bool   g_blockEventsOnScroll;
+extern bool        g_blockEventsOnDrag;
+extern bool        g_blockEventsOnScroll;
+extern GtkWidget  *wxRootWindow;
 
 //-----------------------------------------------------------------------------
 // local functions
@@ -321,8 +322,7 @@ bool wxMiniFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title
         ((style & wxCAPTION) || (style & wxTINY_CAPTION_HORIZ) || (style & wxTINY_CAPTION_VERT)))
     {
         GdkBitmap *mask = (GdkBitmap*) NULL;
-        GdkWindow *parent = (GdkWindow*) &gdk_root_parent;
-        GdkPixmap *pixmap = gdk_pixmap_create_from_xpm_d( parent, &mask, NULL, cross_xpm );
+        GdkPixmap *pixmap = gdk_pixmap_create_from_xpm_d( wxRootWindow->window, &mask, NULL, cross_xpm );
     
         GtkWidget *pw = gtk_pixmap_new( pixmap, mask );
         gdk_bitmap_unref( mask );
index 98327a2aee941a3c958e9ad2fb31147e92ccf649..9b13515ed41cf1ea66025cca230e1af6bd7da590 100644 (file)
@@ -250,6 +250,8 @@ wxApp::wxApp()
 #endif
 
     m_colorCube = (unsigned char*) NULL;
+    
+    m_useBestVisual = FALSE;
 }
 
 wxApp::~wxApp()
@@ -271,7 +273,8 @@ bool wxApp::OnInitGui()
        we make sure we get the best. this can sometimes be wasteful,
        of course, but what do these guys pay $30.000 for? */
        
-    if (gdk_visual_get_best() != gdk_visual_get_system())
+    if ((gdk_visual_get_best() != gdk_visual_get_system()) &&
+        (m_useBestVisual))
     {
         GdkVisual* vis = gdk_visual_get_best();
         gtk_widget_set_default_visual( vis );
index bdcc5ef8a99f2e61c266e8969a07e48a72f057a2..fb7412dba9b4be17b0a453a7e60d6ffbae8094e6 100644 (file)
@@ -35,8 +35,9 @@ extern bool g_isIdle;
 // data
 //-----------------------------------------------------------------------------
 
-extern bool   g_blockEventsOnDrag;
-extern bool   g_blockEventsOnScroll;
+extern bool        g_blockEventsOnDrag;
+extern bool        g_blockEventsOnScroll;
+extern GtkWidget  *wxRootWindow;
 
 //-----------------------------------------------------------------------------
 // local functions
@@ -321,8 +322,7 @@ bool wxMiniFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title
         ((style & wxCAPTION) || (style & wxTINY_CAPTION_HORIZ) || (style & wxTINY_CAPTION_VERT)))
     {
         GdkBitmap *mask = (GdkBitmap*) NULL;
-        GdkWindow *parent = (GdkWindow*) &gdk_root_parent;
-        GdkPixmap *pixmap = gdk_pixmap_create_from_xpm_d( parent, &mask, NULL, cross_xpm );
+        GdkPixmap *pixmap = gdk_pixmap_create_from_xpm_d( wxRootWindow->window, &mask, NULL, cross_xpm );
     
         GtkWidget *pw = gtk_pixmap_new( pixmap, mask );
         gdk_bitmap_unref( mask );