* something will be visible soon, be patient...
authorCyril Deguet <asmax@videolan.org>
Sun, 13 Apr 2003 20:07:34 +0000 (20:07 +0000)
committerCyril Deguet <asmax@videolan.org>
Sun, 13 Apr 2003 20:07:34 +0000 (20:07 +0000)
 (this silly GDK doesn't know BMP images :(

modules/gui/skins/gtk2/gtk2_bitmap.cpp
modules/gui/skins/gtk2/gtk2_bitmap.h
modules/gui/skins/gtk2/gtk2_graphics.cpp
modules/gui/skins/gtk2/gtk2_theme.cpp
modules/gui/skins/os_graphics.h
modules/gui/skins/src/window.cpp

index 5a37e40..4a4d992 100644 (file)
@@ -2,7 +2,7 @@
  * gtk2_bitmap.cpp: GTK2 implementation of the Bitmap class
  *****************************************************************************
  * Copyright (C) 2003 VideoLAN
- * $Id: gtk2_bitmap.cpp,v 1.2 2003/04/13 19:09:59 asmax Exp $
+ * $Id: gtk2_bitmap.cpp,v 1.3 2003/04/13 20:07:34 asmax Exp $
  *
  * Authors: Cyril Deguet     <asmax@videolan.org>
  *
@@ -25,8 +25,7 @@
 #if !defined WIN32
 
 //--- GTK2 -----------------------------------------------------------------
-//#define WINVER  0x0500
-//#include <windows.h>
+#include <gdk/gdk.h>
 
 //--- VLC -------------------------------------------------------------------
 #include <vlc/intf.h>
@@ -98,6 +97,7 @@ GTK2Bitmap::GTK2Bitmap( intf_thread_t *p_intf, string FileName, int AColor )
 
     // Delete objects
     DeleteObject( HBitmap );*/
+    
 }
 //---------------------------------------------------------------------------
 GTK2Bitmap::GTK2Bitmap( intf_thread_t *p_intf, Graphics *from, int x, int y,
index b857315..2a07fc3 100644 (file)
@@ -2,7 +2,7 @@
  * gtk2_bitmap.h: GTK2 implementation of the Bitmap class
  *****************************************************************************
  * Copyright (C) 2003 VideoLAN
- * $Id: gtk2_bitmap.h,v 1.1 2003/04/12 21:43:27 asmax Exp $
+ * $Id: gtk2_bitmap.h,v 1.2 2003/04/13 20:07:34 asmax Exp $
  *
  * Authors: Cyril Deguet     <asmax@videolan.org>
  *
@@ -27,7 +27,7 @@
 #define VLC_GTK2_BITMAP
 
 //--- GTK2 -----------------------------------------------------------------
-//#include <windows.h>
+#include <gdk/gdk.h>
 
 //--- GENERAL ---------------------------------------------------------------
 #include <string>
@@ -42,7 +42,7 @@ class Graphics;
 class GTK2Bitmap : public Bitmap
 {
     private:
-//        HDC bmpDC;
+        GdkBitmap *bmpDC;
 
     public:
         // Constructors
@@ -61,7 +61,7 @@ class GTK2Bitmap : public Bitmap
         virtual int  GetBmpPixel( int x, int y );
         virtual void SetBmpPixel( int x, int y, int color );
 
-//        HDC GetBmpDC() { return bmpDC; }
+        GdkBitmap *GetBmpDC() { return bmpDC; }
 };
 //---------------------------------------------------------------------------
 
index 725fe69..91aef55 100644 (file)
@@ -2,7 +2,7 @@
  * gtk2_graphics.cpp: GTK2 implementation of the Graphics and Region classes
  *****************************************************************************
  * Copyright (C) 2003 VideoLAN
- * $Id: gtk2_graphics.cpp,v 1.4 2003/04/13 19:09:59 asmax Exp $
+ * $Id: gtk2_graphics.cpp,v 1.5 2003/04/13 20:07:34 asmax Exp $
  *
  * Authors: Cyril Deguet     <asmax@videolan.org>
  *
@@ -33,7 +33,6 @@
 #include "os_window.h"
 #include "gtk2_graphics.h"
 
-
 //---------------------------------------------------------------------------
 // GTK2 GRAPHICS
 //---------------------------------------------------------------------------
@@ -54,8 +53,8 @@ GTK2Graphics::GTK2Graphics( int w, int h, Window *from ) : Graphics( w, h )
     SelectObject( Image, HImage );
     DeleteObject( HImage );*/
     
-/*    Image = ( GdkDrawable* )( (GTK2Window *)from )->GetHandle();
-    Gc = gdk_gc_new( Image );*/
+    Image = ( GdkDrawable* )( (GTK2Window *)from )->GetHandle();
+    Gc = gdk_gc_new( Image );
 }
 //---------------------------------------------------------------------------
 GTK2Graphics::~GTK2Graphics()
@@ -80,7 +79,7 @@ void GTK2Graphics::CopyFrom( int dx, int dy, int dw, int dh, Graphics *Src,
 //---------------------------------------------------------------------------
 void GTK2Graphics::DrawRect( int x, int y, int w, int h, int color )
 {
-//    gdk_draw_rectangle( Image, Gc, TRUE, x, y, w, h);
+    gdk_draw_rectangle( Image, Gc, TRUE, x, y, w, h);
 }
 //---------------------------------------------------------------------------
 void GTK2Graphics::SetClipRegion( Region *rgn )
@@ -97,12 +96,17 @@ void GTK2Graphics::SetClipRegion( Region *rgn )
 //---------------------------------------------------------------------------
 GTK2Region::GTK2Region()
 {
-/*    Rgn = CreateRectRgn( 0, 0, 0, 0 );*/
+    Rgn = gdk_region_new();
 }
 //---------------------------------------------------------------------------
 GTK2Region::GTK2Region( int x, int y, int w, int h )
 {
-/*    Rgn = CreateRectRgn( x, y, x + w, y + h );*/
+    GdkRectangle rect;
+    rect.x = x;
+    rect.y = y;
+    rect.width = w;
+    rect.height = h;
+    Rgn = gdk_region_rectangle( &rect );
 }
 //---------------------------------------------------------------------------
 GTK2Region::~GTK2Region()
@@ -117,10 +121,13 @@ void GTK2Region::AddPoint( int x, int y )
 //---------------------------------------------------------------------------
 void GTK2Region::AddRectangle( int x, int y, int w, int h )
 {
-/*    HRGN Buffer;
-    Buffer = CreateRectRgn( x, y, x + w, y + h );
-    CombineRgn( Rgn, Buffer, Rgn, 0x2 );
-    DeleteObject( Buffer );*/
+    GdkRectangle rect;
+    rect.x = x;
+    rect.y = y;
+    rect.width = w;
+    rect.height = h;
+    GdkRegion *Buffer = gdk_region_rectangle( &rect );
+    gdk_region_union( Rgn, Buffer );
 }
 //---------------------------------------------------------------------------
 void GTK2Region::AddElipse( int x, int y, int w, int h )
@@ -129,6 +136,7 @@ void GTK2Region::AddElipse( int x, int y, int w, int h )
     Buffer = CreateEllipticRgn( x, y, x + w, y + h );
     CombineRgn( Rgn, Buffer, Rgn, 0x2 );
     DeleteObject( Buffer );*/
+    /*FIXME*/
 }
 //---------------------------------------------------------------------------
 void GTK2Region::Move( int x, int y )
@@ -138,7 +146,7 @@ void GTK2Region::Move( int x, int y )
 //---------------------------------------------------------------------------
 bool GTK2Region::Hit( int x, int y )
 {
-/*    return PtInRegion( Rgn, x, y );*/
+    return gdk_region_point_in( Rgn, x, y );
 }
 //---------------------------------------------------------------------------
 
index 116b8eb..41b8f6c 100644 (file)
@@ -2,7 +2,7 @@
  * gtk2_theme.cpp: GTK2 implementation of the Theme class
  *****************************************************************************
  * Copyright (C) 2003 VideoLAN
- * $Id: gtk2_theme.cpp,v 1.3 2003/04/13 19:09:59 asmax Exp $
+ * $Id: gtk2_theme.cpp,v 1.4 2003/04/13 20:07:34 asmax Exp $
  *
  * Authors: Cyril Deguet     <asmax@videolan.org>
  *
@@ -263,15 +263,20 @@ void GTK2Theme::OnLoadTheme()
     GdkWindowAttr attr;
     attr.title = "VLC Media Player";
     attr.event_mask = GDK_ALL_EVENTS_MASK;
-    attr.width = 100;
-    attr.height = 100;
+    attr.x = 100;
+    attr.y = 100;
+    attr.window_type = GDK_WINDOW_TOPLEVEL;
+    attr.width = 400;
+    attr.height = 200;
     attr.window_type = GDK_WINDOW_TOPLEVEL;
     attr.wclass = GDK_INPUT_OUTPUT;
+    attr.override_redirect = FALSE;
     
-    gint mask = GDK_WA_TITLE;
+    gint mask = GDK_WA_TITLE|GDK_WA_X|GDK_WA_Y|GDK_WA_NOREDIR;
     
     // Create the parent window
     ParentWindow = gdk_window_new( NULL, &attr, mask);
+    gdk_window_show( ParentWindow );
 }
 //---------------------------------------------------------------------------
 void GTK2Theme::AddSystemMenu( string name, Event *event )
@@ -316,25 +321,23 @@ void GTK2Theme::AddWindow( string name, int x, int y, bool visible,
     attr.event_mask = GDK_ALL_EVENTS_MASK;
     attr.width = 100;
     attr.height = 100;
-    //attr.window_type = GDK_WINDOW_CHILD;
-    attr.window_type = GDK_WINDOW_TOPLEVEL;
+    attr.window_type = GDK_WINDOW_CHILD;
     attr.wclass = GDK_INPUT_OUTPUT;
     
     gint mask =0;
     
     // Create the parent window
- //   GdkWindow *gwnd = gdk_window_new( ParentWindow, &attr, mask);
-    GdkWindow *gwnd = gdk_window_new( NULL, &attr, mask);
+    GdkWindow *gwnd = gdk_window_new( ParentWindow, &attr, mask);
     if( !gwnd )
     {
         msg_Err( p_intf, "CreateWindow failed" );
         return;
     }
     
+    gdk_window_show( gwnd );
+    
     WindowList.push_back( (Window *)new OSWindow( p_intf, gwnd, x, y, visible,
         fadetime, alpha, movealpha, dragdrop ) ) ;
-  
-    gdk_window_show( ParentWindow );
 
 }
 //---------------------------------------------------------------------------
index 4374e9f..419efa8 100644 (file)
@@ -2,7 +2,7 @@
  * os_graphics.h: Wrapper for the Graphics and Region classes
  *****************************************************************************
  * Copyright (C) 2003 VideoLAN
- * $Id: os_graphics.h,v 1.2 2003/04/12 21:43:27 asmax Exp $
+ * $Id: os_graphics.h,v 1.3 2003/04/13 20:07:34 asmax Exp $
  *
  * Authors: Olivier Teulière <ipkiss@via.ecp.fr>
  *          Emmanuel Puig    <karibu@via.ecp.fr>
@@ -32,8 +32,8 @@
     #define OSRegion   Win32Region
 #else    
     #include "gtk2_graphics.h"
-    #define SRC_COPY   SRCCOPY
-    #define SRC_AND    SRCAND
+    #define SRC_COPY   1
+    #define SRC_AND    2
     #define OSGraphics GTK2Graphics
     #define OSRegion   GTK2Region
 #endif
index daedf4d..6d7e56f 100644 (file)
@@ -2,7 +2,7 @@
  * window.cpp: Window class
  *****************************************************************************
  * Copyright (C) 2003 VideoLAN
- * $Id: window.cpp,v 1.6 2003/04/13 17:46:23 asmax Exp $
+ * $Id: window.cpp,v 1.7 2003/04/13 20:07:34 asmax Exp $
  *
  * Authors: Olivier Teulière <ipkiss@via.ecp.fr>
  *          Emmanuel Puig    <karibu@via.ecp.fr>
@@ -278,12 +278,7 @@ void Window::RefreshImage( int x, int y, int w, int h )
             ControlList[i]->Draw( x, y, w, h, Buffer );
 
     // Copy buffer in Image
-/* FIXME: kludge */
-#ifdef WIN32
     Image->CopyFrom( x, y, w, h, Buffer, 0, 0, SRC_COPY );
-#else
-  fprintf(stderr, "%X WARNING: FIXME in window.cpp !!!!", Buffer);
-#endif
 
     // Free memory
     delete Buffer;