]> git.saurik.com Git - wxWidgets.git/commitdiff
Color cubes now get created on 8-bit true-color
authorRobert Roebling <robert@roebling.de>
Thu, 27 May 1999 19:54:05 +0000 (19:54 +0000)
committerRobert Roebling <robert@roebling.de>
Thu, 27 May 1999 19:54:05 +0000 (19:54 +0000)
    visual as well. (This exists).
  Added MakeModal() to wxFrame.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2585 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/gtk/frame.h
include/wx/gtk1/frame.h
samples/image/image.cpp
src/gtk/app.cpp
src/gtk/frame.cpp
src/gtk1/app.cpp
src/gtk1/frame.cpp

index 13a543e0fe2468c6308bbe629ea924a0021669d7..145f5c6392f4a498a1003c9b70d1ee23343739cf 100644 (file)
@@ -83,6 +83,9 @@ public:
     virtual void SetTitle( const wxString &title );
     virtual wxString GetTitle() const { return m_title; }
 
     virtual void SetTitle( const wxString &title );
     virtual wxString GetTitle() const { return m_title; }
 
+        // make the window modal (all other windows unresponsive)
+    virtual void MakeModal(bool modal = TRUE);
+
     virtual void SetIcon( const wxIcon &icon );
     virtual void Iconize( bool WXUNUSED(iconize)) { }
     virtual bool IsIconized() const { return FALSE; }
     virtual void SetIcon( const wxIcon &icon );
     virtual void Iconize( bool WXUNUSED(iconize)) { }
     virtual bool IsIconized() const { return FALSE; }
index 13a543e0fe2468c6308bbe629ea924a0021669d7..145f5c6392f4a498a1003c9b70d1ee23343739cf 100644 (file)
@@ -83,6 +83,9 @@ public:
     virtual void SetTitle( const wxString &title );
     virtual wxString GetTitle() const { return m_title; }
 
     virtual void SetTitle( const wxString &title );
     virtual wxString GetTitle() const { return m_title; }
 
+        // make the window modal (all other windows unresponsive)
+    virtual void MakeModal(bool modal = TRUE);
+
     virtual void SetIcon( const wxIcon &icon );
     virtual void Iconize( bool WXUNUSED(iconize)) { }
     virtual bool IsIconized() const { return FALSE; }
     virtual void SetIcon( const wxIcon &icon );
     virtual void Iconize( bool WXUNUSED(iconize)) { }
     virtual bool IsIconized() const { return FALSE; }
index c13b9f3d8516dd7f359a03431e9c13f90eec84fa..36879ba4c8d5de673afd91b12728c21d03e6b132 100644 (file)
@@ -41,6 +41,7 @@ public:
     wxBitmap  *my_horse_png;
     wxBitmap  *my_horse_jpeg;
     wxBitmap  *my_horse_gif;
     wxBitmap  *my_horse_png;
     wxBitmap  *my_horse_jpeg;
     wxBitmap  *my_horse_gif;
+    wxBitmap  *my_horse_bmp;
     wxBitmap  *my_square;
     wxBitmap  *my_anti;
 
     wxBitmap  *my_square;
     wxBitmap  *my_anti;
 
@@ -91,6 +92,7 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id,
   my_horse_png = (wxBitmap*) NULL;
   my_horse_jpeg = (wxBitmap*) NULL;
   my_horse_gif = (wxBitmap*) NULL;
   my_horse_png = (wxBitmap*) NULL;
   my_horse_jpeg = (wxBitmap*) NULL;
   my_horse_gif = (wxBitmap*) NULL;
+  my_horse_bmp = (wxBitmap*) NULL;
   my_square = (wxBitmap*) NULL;
   my_anti = (wxBitmap*) NULL;
 
   my_square = (wxBitmap*) NULL;
   my_anti = (wxBitmap*) NULL;
 
@@ -133,6 +135,11 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id,
   else
     my_horse_gif = new wxBitmap( image.ConvertToBitmap() );
   
   else
     my_horse_gif = new wxBitmap( image.ConvertToBitmap() );
   
+  if ( !image.LoadFile( dir + wxString("horse.bmp"), wxBITMAP_TYPE_BMP ) )
+      wxLogError("Can't load BMP image");
+  else
+    my_horse_bmp = new wxBitmap( image.ConvertToBitmap() );
+  
   image.LoadFile( dir + wxString("test.png"), wxBITMAP_TYPE_PNG );
   my_square = new wxBitmap( image.ConvertToBitmap() );
   
   image.LoadFile( dir + wxString("test.png"), wxBITMAP_TYPE_PNG );
   my_square = new wxBitmap( image.ConvertToBitmap() );
   
@@ -144,6 +151,7 @@ MyCanvas::~MyCanvas()
   delete my_horse_png;
   delete my_horse_jpeg;
   delete my_horse_gif;
   delete my_horse_png;
   delete my_horse_jpeg;
   delete my_horse_gif;
+  delete my_horse_bmp;
   delete my_square;
   delete my_anti;
 }
   delete my_square;
   delete my_anti;
 }
@@ -171,6 +179,9 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) )
   
   dc.DrawText( "GIF handler", 30, 595 );
   if (my_horse_gif && my_horse_gif->Ok()) dc.DrawBitmap( *my_horse_gif, 30, 610 );
   
   dc.DrawText( "GIF handler", 30, 595 );
   if (my_horse_gif && my_horse_gif->Ok()) dc.DrawBitmap( *my_horse_gif, 30, 610 );
+  
+  dc.DrawText( "BMP handler", 30, 815 );
+  if (my_horse_bmp && my_horse_bmp->Ok()) dc.DrawBitmap( *my_horse_bmp, 30, 830 );
 }
 
 void MyCanvas::CreateAntiAliasedBitmap()
 }
 
 void MyCanvas::CreateAntiAliasedBitmap()
index 97ef298d00a10daef029c1e11dfccb63f482bc65..a6b21a616b7886bab13ce5a59fa8bfd6e9c4dd6d 100644 (file)
@@ -343,7 +343,7 @@ bool wxApp::OnInitGui()
                 int index = -1;
 
                 GdkColor *colors = cmap->colors;
                 int index = -1;
 
                 GdkColor *colors = cmap->colors;
-                if(colors)
+                if (colors)
                 {
                     int max = 3 * 65536;
 
                 {
                     int max = 3 * 65536;
 
@@ -359,7 +359,16 @@ bool wxApp::OnInitGui()
                         }
                     }
                 }
                         }
                     }
                 }
-
+               else
+               {
+                   /* assume 8-bit true or static colors. this really
+                      exists. */
+                   GdkVisual* vis = gdk_colormap_get_visual( cmap );
+                   index = (r >> (5 - vis->red_prec)) << vis->red_shift;
+                   index |= (g >> (5 - vis->green_prec)) << vis->green_shift;
+                   index |= (b >> (5 - vis->blue_prec)) << vis->blue_shift;
+               }
+               
                 m_colorCube[ (r*1024) + (g*32) + b ] = index;
             }
         }
                 m_colorCube[ (r*1024) + (g*32) + b ] = index;
             }
         }
index 1f8dcc9d638eb7d9f7cd855015a79f825df7535f..d9299edf62d1a23a6756e01c5bda4c717f8e0e2a 100644 (file)
@@ -742,6 +742,20 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height
     m_resizing = FALSE;
 }
 
     m_resizing = FALSE;
 }
 
+void wxFrame::MakeModal( bool modal )
+{
+    if (modal)
+    {
+        gtk_grab_add( m_widget );
+        gtk_main();
+        gtk_grab_remove( m_widget );
+    }
+    else
+    {
+        gtk_main_quit();
+    }
+}
+
 void wxFrame::OnInternalIdle()
 {
     if (!m_sizeSet && GTK_WIDGET_REALIZED(m_wxwindow))
 void wxFrame::OnInternalIdle()
 {
     if (!m_sizeSet && GTK_WIDGET_REALIZED(m_wxwindow))
index 97ef298d00a10daef029c1e11dfccb63f482bc65..a6b21a616b7886bab13ce5a59fa8bfd6e9c4dd6d 100644 (file)
@@ -343,7 +343,7 @@ bool wxApp::OnInitGui()
                 int index = -1;
 
                 GdkColor *colors = cmap->colors;
                 int index = -1;
 
                 GdkColor *colors = cmap->colors;
-                if(colors)
+                if (colors)
                 {
                     int max = 3 * 65536;
 
                 {
                     int max = 3 * 65536;
 
@@ -359,7 +359,16 @@ bool wxApp::OnInitGui()
                         }
                     }
                 }
                         }
                     }
                 }
-
+               else
+               {
+                   /* assume 8-bit true or static colors. this really
+                      exists. */
+                   GdkVisual* vis = gdk_colormap_get_visual( cmap );
+                   index = (r >> (5 - vis->red_prec)) << vis->red_shift;
+                   index |= (g >> (5 - vis->green_prec)) << vis->green_shift;
+                   index |= (b >> (5 - vis->blue_prec)) << vis->blue_shift;
+               }
+               
                 m_colorCube[ (r*1024) + (g*32) + b ] = index;
             }
         }
                 m_colorCube[ (r*1024) + (g*32) + b ] = index;
             }
         }
index 1f8dcc9d638eb7d9f7cd855015a79f825df7535f..d9299edf62d1a23a6756e01c5bda4c717f8e0e2a 100644 (file)
@@ -742,6 +742,20 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height
     m_resizing = FALSE;
 }
 
     m_resizing = FALSE;
 }
 
+void wxFrame::MakeModal( bool modal )
+{
+    if (modal)
+    {
+        gtk_grab_add( m_widget );
+        gtk_main();
+        gtk_grab_remove( m_widget );
+    }
+    else
+    {
+        gtk_main_quit();
+    }
+}
+
 void wxFrame::OnInternalIdle()
 {
     if (!m_sizeSet && GTK_WIDGET_REALIZED(m_wxwindow))
 void wxFrame::OnInternalIdle()
 {
     if (!m_sizeSet && GTK_WIDGET_REALIZED(m_wxwindow))