eliot-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Eliot-dev] Changes to eliot/wxwin/gfxboard.h [antoine-1]


From: eliot-dev
Subject: [Eliot-dev] Changes to eliot/wxwin/gfxboard.h [antoine-1]
Date: Sun, 23 Oct 2005 13:10:59 -0400

Index: eliot/wxwin/gfxboard.h
diff -u /dev/null eliot/wxwin/gfxboard.h:1.4.2.1
--- /dev/null   Sun Oct 23 17:10:59 2005
+++ eliot/wxwin/gfxboard.h      Sun Oct 23 17:10:46 2005
@@ -0,0 +1,117 @@
+/* Eliot                                                                     */
+/* Copyright (C) 1999  Antoine Fraboulet                                     */
+/*                                                                           */
+/* This file is part of Eliot.                                               */
+/*                                                                           */
+/* Eliot is free software; you can redistribute it and/or modify             */
+/* it under the terms of the GNU General Public License as published by      */
+/* the Free Software Foundation; either version 2 of the License, or         */
+/* (at your option) any later version.                                       */
+/*                                                                           */
+/* Eliot is distributed in the hope that it will be useful,                  */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of            */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             */
+/* GNU General Public License for more details.                              */
+/*                                                                           */
+/* You should have received a copy of the GNU General Public License         */
+/* along with this program; if not, write to the Free Software               */
+/* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA 
*/
+
+/* $Id: gfxboard.h,v 1.4.2.1 2005/10/23 17:10:46 afrab Exp $ */
+
+/**
+ *  \file   gfxboard.h
+ *  \brief  Game board graphical view
+ *  \author Antoine Fraboulet
+ *  \date   2002
+ */
+
+#ifndef _GFXBOARD_H
+#define _GFXBOARD_H
+
+/**
+ * gfxboard is a wxWindow widget that draws a Scrabble board
+ */
+
+class GfxBoard : public wxWindow
+{
+ private:
+    /**
+     * reference on the played game
+     */
+    Game &m_game;
+
+    /**
+     * paintedboard_char is the matrix of played tiles
+     */
+    wxChar paintedboard_char[BOARD_DIM][BOARD_DIM];
+
+    /**
+     * paintedboard_attr is the matrix of special attributes for tiles, for
+     * instance it can store if a tile is a test tile (placed but not played).
+     */
+    char   paintedboard_attr[BOARD_DIM][BOARD_DIM];
+
+    /**
+     * size in pixels for the board.
+     * board_size = min(width,height) 
+     */
+    int board_size; 
+
+    /**
+     * tile_size = size in pixels of a tile
+     */
+    int tile_size;
+
+    /**
+     * there is a bug when doing an OnSize under windows : the window
+     * has to be fully refreshed (UpdateRegion does not seem to work).
+     */
+#if defined(MSW_RESIZE_BUG)
+    bool just_resized;
+#endif
+
+    /**
+     * top left point used to draw the lines, used to keep the board
+     * centered horizontally and vertically
+     */
+    wxPoint  TopLeft;
+
+    /**
+     * Board bitmap, created by CreateBMP
+     */
+    wxBitmap *bmp;
+    
+    void CreateBMP();
+    void DrawTileBack(wxDC*,int,int,int, bool testtile);
+    void DrawTile(wxDC*,wxString&,int,int,bool testtile = false, bool 
drawtileback = false);
+    void DrawBoard(wxDC*);
+    void RefreshSquare(wxRect&);
+
+    ConfigDB config;
+
+ public:
+
+    GfxBoard(wxFrame* parent, Game& game);
+    ~GfxBoard(void);
+    
+    void OnPaint (wxPaintEvent& event);
+    void OnSize  (wxSizeEvent&  event);
+
+    typedef enum {
+       BOARD_REFRESH,
+       BOARD_FORCE_REFRESH
+    } board_refresh_t;
+
+    void Refresh (board_refresh_t force = BOARD_REFRESH);
+
+    DECLARE_EVENT_TABLE()
+};
+
+#endif
+
+
+/// Local Variables:
+/// mode: hs-minor
+/// c-basic-offset: 4
+/// End:




reply via email to

[Prev in Thread] Current Thread [Next in Thread]